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緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
SpringBoot框架DataSource多數(shù)據(jù)源配置方式
這篇文章主要介紹了SpringBoot框架DataSource多數(shù)據(jù)源配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07SpringBoot?AOP?Redis實(shí)現(xiàn)延時(shí)雙刪功能實(shí)戰(zhàn)
本文主要介紹了SpringBoot?AOP?Redis實(shí)現(xiàn)延時(shí)雙刪功能實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08深入探究SpringBoot可以同時(shí)處理多少請(qǐng)求
SpringBoot是一款非常流行的Java后端框架,它可以幫助開發(fā)人員快速構(gòu)建高效的Web應(yīng)用程序,但是,許多人對(duì)于SpringBoot能夠同時(shí)處理多少請(qǐng)求的疑問仍然存在,在本篇文章中,我們將深入探討這個(gè)問題,需要的朋友可以參考下2023-07-07java中String、StringBuffer與StringBuilder的區(qū)別
這篇文章主要介紹了java 中String和StringBuffer與StringBuilder的區(qū)別,在開發(fā)過程中經(jīng)常會(huì)用到String這個(gè)類進(jìn)行操作。需要的朋友可以收藏下,方便下次瀏覽觀看2021-12-12java 一個(gè)類實(shí)現(xiàn)兩個(gè)接口的案例
這篇文章主要介紹了java 一個(gè)類實(shí)現(xiàn)兩個(gè)接口的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-10-10Spring中的@ControllerAdvice和ResponseBodyAdvice詳解
這篇文章主要介紹了Spring中的@ControllerAdvice和ResponseBodyAdvice詳解,@ControllerAdvice作用于@Controller修飾的類里面的所有方法,ResponseBodyAdvice作用于@ResponseBody注解修飾的方法,它可以對(duì)這些方法的返回值進(jìn)行修改,需要的朋友可以參考下2024-01-01