class MyThread implements Runnable{
System.out.println(LocalTime.now() + " " + Thread.currentThread().getName() + " is running");
} catch (InterruptedException 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");
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