Java線程的聯(lián)合用法實(shí)例分析
本文實(shí)例講述了Java線程的聯(lián)合用法。分享給大家供大家參考,具體如下:
一 點(diǎn)睛
在Java中,線程控制提供了join()方法。該方法的功能是把指定的線程加入到當(dāng)前線程,從而實(shí)現(xiàn)將兩個(gè)交替執(zhí)行的線程,合并為順序執(zhí)行的線程。比方說,在線程A中調(diào)用了線程B的join()方法,線程A就會(huì)立刻掛起(suspend),一直等下去,直到它所聯(lián)合的線程B執(zhí)行完畢為止,A線程才重新排隊(duì)等待CPU資源,以便恢復(fù)執(zhí)行。這種策略通常會(huì)在main()主線程內(nèi),用以等待其他線程完成后,再結(jié)束main()主線程。
二 代碼
public class ThreadJoin
{
public static void main( String[] args )
{
ThreadTest t = new ThreadTest();
Thread pp = new Thread( t );
pp.start();
int flag = 0;
for( int i = 0; i < 5; ++i )
{
if( flag == 3 )
{
try
{
pp.join(); // 強(qiáng)制運(yùn)行完pp線程后,再運(yùn)行后面的程序
}
catch( Exception e ) // 會(huì)拋出InterruptedException
{
System.out.println( e.getMessage() );
}
}
System.out.println( "main Thread " + flag );
flag += 1;
}
}
}
class ThreadTest implements Runnable
{
public void run()
{
int i = 0;
for( int x = 0; x < 5; ++x )
{
try
{
Thread.sleep( 1000 );
}
catch( InterruptedException e )
{
e.printStackTrace();
}
System.out.println( Thread.currentThread().getName() + " ---->> " + i );
i += 1;
}
}
}
三 運(yùn)行
main Thread 0
main Thread 1
main Thread 2
Thread-0 ---->> 0
Thread-0 ---->> 1
Thread-0 ---->> 2
Thread-0 ---->> 3
Thread-0 ---->> 4
main Thread 3
main Thread 4
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java進(jìn)程與線程操作技巧總結(jié)》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
springboot3集成mybatis-plus報(bào)sqlSession異常的問題解決
springboot3已經(jīng)發(fā)布正式版,但是在集成mybatis-plus最新版3.5.2的時(shí)候發(fā)現(xiàn)提示異常,本文就來介紹一下報(bào)sqlSession異常的問題解決,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02
Java模擬單鏈表和雙端鏈表數(shù)據(jù)結(jié)構(gòu)的實(shí)例講解
這篇文章主要介紹了Java模擬單鏈表和雙端鏈表數(shù)據(jù)結(jié)構(gòu)的實(shí)例,注意這里的雙端鏈表不是雙向鏈表,是在單鏈表的基礎(chǔ)上保存有對最后一個(gè)鏈接點(diǎn)的引用,需要的朋友可以參考下2016-04-04
java工具類SendEmailUtil實(shí)現(xiàn)發(fā)送郵件
這篇文章主要為大家詳細(xì)介紹了java工具類SendEmailUtil實(shí)現(xiàn)發(fā)送郵件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02
IDEA創(chuàng)建springboot + mybatis項(xiàng)目全過程(步驟詳解)
這篇文章主要介紹了IDEA創(chuàng)建springboot + mybatis項(xiàng)目全過程及步驟詳解,本文通圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
使用IDEA將Java/Kotliin工程導(dǎo)出Jar包的正確姿勢
這篇文章主要介紹了使用IDEA將Java/Kotliin工程導(dǎo)出Jar包的正確姿勢,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Java?C++刷題leetcode1106解析布爾表達(dá)式
這篇文章主要為大家介紹了Java?C++刷題leetcode1106解析布爾表達(dá)式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
RestTemplate響應(yīng)中如何獲取輸入流InputStream
這篇文章主要介紹了RestTemplate響應(yīng)中如何獲取輸入流InputStream問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01

