91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

乡宁县| 芒康县| 雷山县| 宜川县| 临江市| 平舆县| 丽水市| 延吉市| 依兰县| 临洮县| 株洲市| 黄大仙区| 富源县| 江西省| 永年县| 浦县| 柏乡县| 穆棱市| 托克逊县| 平原县| 潮安县| 固原市| 朝阳县| 平阴县| 台山市| 察雅县| 瓮安县| 定陶县| 洛阳市| 乌兰察布市| 安阳市| 庆元县| 盘锦市| 西乡县| 崇义县| 丰镇市| 定襄县| 迭部县| 监利县| 双江| 宜阳县|