这是我的代码(某种)
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
方法中。我还想指出的是,使用此方法,运行
Thread
的bar
只是以一种愉快的方式运行,而您无法监视其进度。您可能需要添加一些更强大的逻辑来处理程序的流程。 (如果需要)。