我知道我可以使用以下内容让线程B在继续之前等待线程A完成:
class A extends Thread{
public void run(){
....
}
}
class B extends Thread{
private Thread someThread;
B(Thread t){
someThread=t;
}
public void run(){
someThread.join();
...//then proceed
}
}
但是,如何在
run()
的A
中调用B
,然后等待其完成才能继续?也就是说,我想要类似class A extends Thread{
private Thread someThread;
B(Thread t){
someThread=t;
}
public void run(){
//*how to start B and wait it finish?
...//then proceed
}
}
class B extends Thread{
public void run(){
....
}
}
最佳答案
如果可能的话,一个更简单的解决方案是先启动B
,然后启动b.join();
,然后在客户端代码中对A
执行相同的操作:
b.start();
b.join();
a.start();
a.join();
在启动线程之前先启动并连接到另一个胎面是没有意义的。
关于java - 在Java中反向使用Thread.join(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9132665/