目录
1.join的作用
join可以使线程间的并行执行变成串行执行,也就是同步执行。
2.join的位置
join方法必须在线程start方法调用之后调用才有意义。
3.join实现原理
join方法是通过调用线程wait(long s)方法来达到同步的,使其等待s秒后自动唤醒。其源代码如下:
public final synchronized void join(long millis)
throws InterruptedException {
long base = System.currentTimeMillis();
long now = 0;
if (millis < 0) {
throw new IllegalArgumentException("timeout value is negative");
}
if (millis == 0) {
while (isAlive()) {
wait(0);
}
} else {
while (isAlive()) {
long delay = millis - now;
if (delay <= 0) {
break;