public class JoinTest {
public static void main(String[] args) throws InterruptedException {
MyThread3 thread=new MyThread3();
thread.start();
//thread.join(1);//将主线程加入到子线程后面,不过如果子线程在1毫秒时间内没执行完,则主线程便不再等待它执行完,进入就绪状态,等待cpu调度
System.out.println(Thread.currentThread());
Thread.currentThread().join();
for(int i=0;i<30;i++){
System.out.println(Thread.currentThread().getName() + "线程第" + i + "次执行!");
}
}
}
class MyThread3 extends Thread {
@Override
public void run() {
for (int i = 0; i < 1000; i++) {
try {
System.out.println(this.getName() + "线程第" + i + "次执行!");
Thread.sleep(1);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
那你得先知道
join
函数是干嘛用的啊!我们先来看看文档:第一句话就说了
Waits for this thread to die
,你在主线程上执行"我要等到主线程结束,当前线程才能结束",这不成死循环了么。