这是我的代码(有点)
foo(a, b)
{
c = a.item;
bar(c);
b = a;
b.count--;
}
我希望bar(c)在一个单独的线程中运行。
到目前为止,这就是我所拥有的:
我使类实现runnable。
我用t = new Thread(this, "Demo Thread"); t.start();
替换了bar(c)行
然后我在代码中创建一个函数,如下所示:
public void run
{
bar(c);
}
问题是我不知道如何让c进入运行状态。任何人都可以解释我怎么做到这一点?
答案 0 :(得分:3)
我修改了你的代码,在自己的线程中运行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
的{{1}}只是以快乐方式运行,您无法监控其进度。您可能希望添加一些更强大的逻辑来处理程序流。 (如果需要的话。)
答案 1 :(得分:1)
创建一个Runnable实例,在其构造函数中获取一个值。在线程中运行Runnable。