Java實現(xiàn)線程插隊的示例代碼
多線程5(線程插隊)
1.題目
在編寫多線程的業(yè)務(wù)時,會遇到讓一個線程優(yōu)先于其他線程運行的情況,除了可以設(shè)置線程的優(yōu)先級高于其他線程,還有更直接的方式:使用Thread類的join()方法。
實現(xiàn):實現(xiàn)線程插隊
2.解題思路
創(chuàng)建一個類:EmergencyThread,實現(xiàn)Runnable接口
在run()方法中,每隔0.1秒輸出一條語句。
寫一個測試類:JoinThread用來進(jìn)行測試。
在類中使用EmergencyThread創(chuàng)建并運行新的線程。
使用join()方法讓新線程優(yōu)先于當(dāng)前線程運行
Thread是程序中的執(zhí)行線程。JAVA虛擬機(jī)允許應(yīng)用程序并發(fā)地運行多個執(zhí)行線程。
Thread.join():設(shè)置了join的線程會優(yōu)先于其他線程先執(zhí)行。
注:可以把Thread.join()注釋掉,對比下運行結(jié)果。
3.代碼詳解
EmergencyThread
package com.xiaoxuzhu; /** * Description: * * @author xiaoxuzhu * @version 1.0 * * <pre> * 修改記錄: * 修改后版本 修改人 修改日期 修改內(nèi)容 * 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 + "號車出發(fā)!"); } } }
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 + "號車出發(fā)!"); try { thread.join(); } catch (InterruptedException e) { e.printStackTrace(); } } } }
注釋掉代碼Thread.join()
到此這篇關(guān)于Java實現(xiàn)線程插隊的示例代碼的文章就介紹到這了,更多相關(guān)Java線程插隊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java @Transactional與synchronized使用的問題
這篇文章主要介紹了Java @Transactional與synchronized使用的問題,了解內(nèi)部原理是為了幫助我們做擴(kuò)展,同時也是驗證了一個人的學(xué)習(xí)能力,如果你想讓自己的職業(yè)道路更上一層樓,這些底層的東西你是必須要會的2023-01-01利用Java實現(xiàn)和可被K整除的子數(shù)組完整實例
這篇文章主要給大家介紹了關(guān)于利用Java實現(xiàn)和可被K整除的子數(shù)組的相關(guān)資料,這道題來自力扣,通過學(xué)習(xí)這道題的解題思路以及代碼對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價值,需要的朋友可以參考下2024-01-01Springboot項目刪除項目同步target文件問題解決方案
這篇文章主要介紹了Springboot項目刪除項目同步target文件問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-12-12Java微信二次開發(fā)(三) Java微信各類型消息封裝
這篇文章主要為大家詳細(xì)介紹了Java微信二次開發(fā)第三篇,Java微信各類型消息封裝,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04Java springboot 配置文件與多環(huán)境配置與運行優(yōu)先級
這篇文章主要介紹了Java springboot如何配置文件,進(jìn)行多環(huán)境配置,以及運行優(yōu)先級,感興趣的小伙伴可以借鑒一下2023-04-04idea中增強(qiáng)for循環(huán)提示unexpected token問題
這篇文章主要介紹了idea中增強(qiáng)for循環(huán)提示unexpected token問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01