一、join方法:
执行该方法的线程进入阻塞状态,直到调用该方法的线程结束后再由阻塞转为就绪状态。
其意思就是,一个线程A在执行过程中,加入另一个线程B(join),这时只能等加入的线程B结束后,才继续执行线程A。
下面通过程序演示join方法:
public class Test {
public static void main(String[] args) {
//创建两个新的进程,并且start!
TimeThread timeThread = new TimeThread();
timeThread.start();
CountThread countThread = new CountThread(timeThread);
countThread.start();
}
}
class CountThread extends Thread{
TimeThread timeThread;//声明变量timeThread是TimeThread类型。
CountThread(TimeThread timeThread){// CountThread方法
this.timeThread = timeThread;
}
@Override
public void run () {
for (int i = 0;i<5 ; i++) {
System.out.println("计数" + i);
//从i=2 是运行程序 将TimeThread加入。
if(i==2) {
try {
timeThread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
class TimeThread extends Thread{
@Override
public void run () {
try {
sleep(100);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
for (int i = 0;i<5 ; i++) {
System.out.println("时间" +new Date()+"@@@@@"+i);
}
}
}
输出结果如下: