[英]Executing the code after run method?
我在A类中有一个创建线程并在B类中调用run方法的方法。我在B类中有一个列表,该列表在B类的run方法中进行了更新,并且我需要在run方法返回后在A类中访问它。 我在下面给出了示例代码。
class A {
public static void main(String[] args) {
List l = null;
B obj = new B();
Thread T = new Thread(obj);
T.start();
l = obj.getList();
// do something with l
}
}
class B implements Runnable {
List l;
void run() {
l = doSomething();
}
public List getList() {
return List l;
}
}
现在,当我获得列表值l = obj.getList();
时,我将得到null l = obj.getList();
行l = obj.getList();
在A类中,在run方法更新之前,它会立即被调用。 线程T返回后如何使主线程等待并显示正确的值。 请建议?
尽管其他建议也可能有用。 最简单的解决方案是等待线程结束。
T.start();
T.join();
l = obj.getList();
在这种情况下,我什至没有理由首先产生线程。
代替
B obj = new B();
Thread T = new Thread(obj);
T.start();
您可以这样做:
new B().run();
在开始和联接之间进行操作时,使用联接更有用。
T.start();
//do some other work here
T.join();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.