Java實現線程插隊的示例代碼

多線程5(線程插隊)

1.題目

在編寫多線程的業務時,會遇到讓一個線程優先於其他線程運行的情況,除瞭可以設置線程的優先級高於其他線程,還有更直接的方式:使用Thread類的join()方法。

實現:實現線程插隊

2.解題思路

創建一個類:EmergencyThread,實現Runnable接口

在run()方法中,每隔0.1秒輸出一條語句。

寫一個測試類:JoinThread用來進行測試。

在類中使用EmergencyThread創建並運行新的線程。

使用join()方法讓新線程優先於當前線程運行

Thread是程序中的執行線程。JAVA虛擬機允許應用程序並發地運行多個執行線程。

Thread.join():設置瞭join的線程會優先於其他線程先執行。

註:可以把Thread.join()註釋掉,對比下運行結果。

3.代碼詳解

EmergencyThread

package com.xiaoxuzhu;

/**
 * Description: 
 *
 * @author xiaoxuzhu
 * @version 1.0
 *
 * <pre>
 * 修改記錄:
 * 修改後版本	        修改人		修改日期			修改內容
 * 2022/5/14.1	    xiaoxuzhu		2022/5/14		    Create
 * </pre>
 * @date 2022/5/14
 */
public class EmergencyThread implements Runnable {

    @Override
    public void run() {
        for (int i = 1; i < 6; i++) {
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("緊急情況:" + i + "號車出發!");
        }
    }
}

JoinThread

public class JoinThread {

    public static void main(String[] args) {
        Thread thread = new Thread(new EmergencyThread());
        thread.start();
        for (int i = 1; i < 6; i++) {
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("正常情況:" + i + "號車出發!");
            try {
                thread.join();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

註釋掉代碼Thread.join()

到此這篇關於Java實現線程插隊的示例代碼的文章就介紹到這瞭,更多相關Java線程插隊內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: