这是我的代码(某种)

foo(a, b)
{
    c = a.item;

    bar(c);
    b = a;
    b.count--;
}


我希望bar(c)在单独的线程中运行。
到目前为止,这就是我所拥有的:
我使类实现可运行。
我将bar(c)行替换为t = new Thread(this, "Demo Thread"); t.start();
然后稍后在代码中创建一个函数,如下所示:

public void run
{
    bar(c);
}


问题是我不知道如何让C运行。谁能解释我该怎么做?

最佳答案

我修改了您的代码以在其自己的线程中运行bar(c)

foo(a, b)
{
    final c = a.item;
    new Thread() {
        @Override
        public void run() {
            bar(c);
        }
    }.start();
    b = a;
    b.count--;
}


本质上,您正在执行的操作是创建一个新的Thread对象,该对象将仅调用bar(c)。您还需要在方法中将c定为final,以便允许将其传递到匿名内部类的run方法中。

我还想指出的是,使用此方法,运行Threadbar只是以一种愉快的方式运行,而您无法监视其进度。您可能需要添加一些更强大的逻辑来处理程序的流程。 (如果需要)。

08-27 22:36
查看更多