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