Java 杂谈

如何让线程顺序执行

2018-05-17  本文已影响0人  z七夜

需求

让多个线程按照顺序执行

有人说,直接按照顺序调用start方法不就好了吗,来看看案例

public static void main(String[] args) throws Exception {
        
        Thread t1= new Thread() {
            @Override
            public void run() {
                System.out.println("我是第一个");
            }
        };
        Thread t2= new Thread() {
            @Override
            public void run() {
                System.out.println("我是第2个");
            }
        };
        Thread t3= new Thread() {
            @Override
            public void run() {
                System.out.println("我是第3个");
            }
        };
        t1.start();
        t2.start();
        t3.start();
}

效果如下


image.png

多次运行,会有不同的结果,因为调用线程的start方法,并不是马上启动run方法,而是进入就绪状态,由系统内部的调度方法来调用,所以运行结果不唯一

所以要使用join方法

        t1.start();
        t1.join();
        t2.start();
        t2.join();
        t3.start();

image.png

所以,让线程顺序执行,就是用join方法

码云:https://gitee.com/zhangqiye/Thread

QQ群:552113611

上一篇 下一篇

猜你喜欢

热点阅读