Java線程的聯(lián)合用法實例分析
本文實例講述了Java線程的聯(lián)合用法。分享給大家供大家參考,具體如下:
一 點睛
在Java中,線程控制提供了join()方法。該方法的功能是把指定的線程加入到當前線程,從而實現(xiàn)將兩個交替執(zhí)行的線程,合并為順序執(zhí)行的線程。比方說,在線程A中調(diào)用了線程B的join()方法,線程A就會立刻掛起(suspend),一直等下去,直到它所聯(lián)合的線程B執(zhí)行完畢為止,A線程才重新排隊等待CPU資源,以便恢復(fù)執(zhí)行。這種策略通常會在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(); // 強制運行完pp線程后,再運行后面的程序
}
catch( Exception e ) // 會拋出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;
}
}
}
三 運行
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進程與線程操作技巧總結(jié)》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
springboot3集成mybatis-plus報sqlSession異常的問題解決
springboot3已經(jīng)發(fā)布正式版,但是在集成mybatis-plus最新版3.5.2的時候發(fā)現(xiàn)提示異常,本文就來介紹一下報sqlSession異常的問題解決,具有一定的參考價值,感興趣的可以了解一下2024-02-02
Java模擬單鏈表和雙端鏈表數(shù)據(jù)結(jié)構(gòu)的實例講解
這篇文章主要介紹了Java模擬單鏈表和雙端鏈表數(shù)據(jù)結(jié)構(gòu)的實例,注意這里的雙端鏈表不是雙向鏈表,是在單鏈表的基礎(chǔ)上保存有對最后一個鏈接點的引用,需要的朋友可以參考下2016-04-04
java工具類SendEmailUtil實現(xiàn)發(fā)送郵件
這篇文章主要為大家詳細介紹了java工具類SendEmailUtil實現(xiàn)發(fā)送郵件,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-02-02
IDEA創(chuàng)建springboot + mybatis項目全過程(步驟詳解)
這篇文章主要介紹了IDEA創(chuàng)建springboot + mybatis項目全過程及步驟詳解,本文通圖文實例代碼相結(jié)合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
使用IDEA將Java/Kotliin工程導(dǎo)出Jar包的正確姿勢
這篇文章主要介紹了使用IDEA將Java/Kotliin工程導(dǎo)出Jar包的正確姿勢,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03
RestTemplate響應(yīng)中如何獲取輸入流InputStream
這篇文章主要介紹了RestTemplate響應(yīng)中如何獲取輸入流InputStream問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01

