假设线程需要另一个线程的处理的返回值;然后该线程继续完成自己的任务;需要使用join()函数;
就是加入一个线程,让加入的线程先执行,有点类似顺序执行的味道
public class MyJoin {
public static void main(String[] args) throws InterruptedException {
ThedJoin myj=new ThedJoin(3);
myj.start();
myj.join();
System.out.println(myj.getResult());
}
}
//需要获取
class ThedJoin extends Thread{
int a;
int result;
public ThedJoin(int a) {
this.a=a;
}
public int getResult() {
return result;
}
@Override
public void run() {
try {
Thb thb=new Thb(5);
thb.start();
// thb.join();
Thread.sleep(10);//等效语句
int b=thb.getB();
//3+5+10
result=a+b;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class Thb extends Thread{
int b;
public Thb(int c) {
b=c;
}
@Override
public void run() {
b+=10;
}
public int getB() {
return b;
}
}