中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java順序執行線程的方法

發布時間:2020-06-24 11:46:40 來源:億速云 閱讀:190 作者:Leah 欄目:編程語言

這篇文章運用簡單易懂的例子給大家介紹java順序執行線程的方法,代碼非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

我們需要完成這樣一個應用場景:

1.早上;2.測試人員、產品經理、開發人員陸續的來公司上班;3.產品經理規劃新需求;4.開發人員開發新需求功能;5.測試人員測試新功能。

規劃需求,開發需求新功能,測試新功能是一個有順序的,我們把thread1看做產品經理,thread2看做開發人員,thread3看做測試人員。

使用線程的 join 方法

join():是Theard的方法,作用是調用線程需等待該join()線程執行完成后,才能繼續用下運行。

應用場景:當一個線程必須等待另一個線程執行完畢才能執行時可以使用join方法。

實例如下:

package com.zhangsf.javabase.thread.order;
/**
 * @author zhangsf
 * 通過子程序join使線程按順序執行
 */
public class ThreadJoinDemo {
    public static void main(String[] args) {
        final Thread thread1 = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("產品經理規劃新需求");
            }
        });
        final Thread thread2 = new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    thread1.join();
                    System.out.println("開發人員開發新需求功能");
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });
        Thread thread3 = new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    thread2.join();
                    System.out.println("測試人員測試新功能");
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });
        System.out.println("早上:");
        System.out.println("測試人員來上班了...");
        thread3.start();
        System.out.println("產品經理來上班了...");
        thread1.start();
        System.out.println("開發人員來上班了...");
        thread2.start();
    }
}

運行結果:

java順序執行線程的方法

使用主線程的 join 方法

這里是在主線程中使用join()來實現對線程的阻塞。

package com.zhangsf.javabase.thread.order;
/**
 * @author zhangsf
 * 通過主程序join使線程按順序執行
 */
public class ThreadMainJoinDemo {
    public static void main(String[] args) throws Exception {
        final Thread thread1 = new Thread(new Runnable() {
            @Override
            public void run() {
              System.out.println("產品經理正在規劃新需求...");
            }
        });
        final Thread thread2 = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("開發人員開發新需求功能");
            }
        });
        final Thread thread3 = new Thread(new Runnable() {zzzz
            @Override
            public void run() {
                System.out.println("測試人員測試新功能");
            }
        });
        System.out.println("早上:");
        System.out.println("產品經理來上班了");
        System.out.println("測試人員來上班了");
        System.out.println("開發人員來上班了");
        thread1.start();
        //在父進程調用子進程的join()方法后,父進程需要等待子進程運行完再繼續運行。
        System.out.println("開發人員和測試人員休息會...");
        thread1.join();
        System.out.println("產品經理新需求規劃完成!");
        thread2.start();
        System.out.println("測試人員休息會...");
        thread2.join();
        thread3.start();
    }
}

運行結果:

java順序執行線程的方法

關于java順序執行線程的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿拉善盟| 光泽县| 湘阴县| 珠海市| 大田县| 宁武县| 礼泉县| 吉安市| 左贡县| 二连浩特市| 临汾市| 邹平县| 华池县| 高淳县| 天峨县| 临夏市| 长葛市| 寻乌县| 开封市| 登封市| 安溪县| 崇明县| 曲周县| 龙胜| 永平县| 修文县| 博爱县| 祁阳县| 贵港市| 蚌埠市| 高陵县| 连州市| 新巴尔虎右旗| 遂昌县| 白河县| 松溪县| 江孜县| 磐石市| 崇左市| 莎车县| 长春市|