No6.等待线程结束(join)和通知(notify)

时间:2022-08-30 15:53:27

先看 join例子:

public class JoinMain {

public volatile static int i = 0;

public static class AddThread extends Thread {
public void run () {
for(i=0;i<1000000;i++);
}
}

public static void main(String[] args) throws InterruptedException {
AddThread at = new AddThread();
at.start();
//如果注释了 join函数 那么得到的i可能是0或者一个非常小的数字。因为AddThread还没开始执行,i的值就已经被输出了。
//使用了join函数后,表示主线程愿意等待AddThread执行完毕,再执行。
at.join();
System.out.println(i);
}
}