join方法使用案例


/**
 * 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

你可能感兴趣的:(Java并发编程,java,开发语言)