我知道我可以使用以下代码让线程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
}
}
但是我如何在A
的run()
中调用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(){
....
}
}
发布于 2012-02-04 01:22:31
如果可能,更简单的解决方案是先启动B
,然后启动b.join();
,然后在客户端代码中对A
执行相同的操作:
b.start();
b.join();
a.start();
a.join();
启动一个线程是没有意义的,因为它只是启动并连接到另一个踏步上,然后再继续。
发布于 2012-02-04 01:19:59
同样的交易:
class A extends Thread{
private Thread someThread;
A(Thread t){
someThread=t;
}
public void run(){
someThread.start();
someThread.join();
// proceed
}
}
class B extends Thread{
public void run(){
....
}
}
发布于 2012-02-04 01:21:11
class A extends Thread{
private Thread someThread;
B(Thread t){
someThread=t;
}
public void run(){
someThread.join()
//do stuff
}
}
class B extends Thread{
public void run(){
....
}
}
https://stackoverflow.com/questions/9132665
复制相似问题