/**
* join方法是Thread类中的一个方法,它用于等待调用该方法的线程执行完毕。
* 当一个线程调用另一个线程的join方法时,它会被阻塞,直到被调用的线程执行完毕。
*/
class MyThread implements Runnable{
public void run(){
System.out.println(LocalTime.now() + " " + Thread.currentThread().getName() + " is running");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
System.out.println(e);
}
System.out.println(LocalTime.now() + " " + Thread.currentThread().getName() + " is finished");
}
}
public class JoinExample {
public static void main(String[] args) throws InterruptedException {
Thread t1 = new Thread(new MyThread(), "Thread 1");
Thread t2 = new Thread(new MyThread(),"Thread 2");
t1.start();
t1.join();
t2.start();
t2.join();
System.out.println(LocalTime.now() + " All threads have finished");
}
}
输出结果
11:25:02.579 Thread 1 is running
11:25:04.595 Thread 1 is finished
11:25:04.595 Thread 2 is running
11:25:06.609 Thread 2 is finished
11:25:06.609 All threads have finished
Process finished with exit code 0