sba*_*_20 0 java multithreading
我在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;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当我得到l = obj.getList();A类中的列表值时,我得到null l = obj.getList();.在运行方法更新之前,会立即调用A 类中的行.如何使主线程等待并在线程T返回后显示正确的值.请建议?
虽然其他建议也可能有用.最简单的解决方案是等待线程结束.
T.start();
T.join();
l = obj.getList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
464 次 |
| 最近记录: |