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();
}
}
}
}
Ensuite, vous devez d'abord savoir à quoi sert la fonction
join
! Jetons d'abord un coup d'œil à la documentation :Comme le dit la première phrase
Waits for this thread to die
, si vous exécutez "Je dois attendre la fin du thread principal avant la fin du thread actuel" sur le thread principal, n'est-ce pas une boucle infinie ?