基于多線程中join()的用法實(shí)例講解
Thread中,join()方法的作用是調(diào)用線程等待該線程完成后,才能繼續(xù)用下運(yùn)行。
public class TestThread5 { public static void main(String[] args) throws InterruptedException { Runner0 run5 = new Runner0(); Thread th5 = new Thread(run5); th5.start(); th5.join();//join()方法用在此處是為了等待主線程結(jié)束后運(yùn)行子線程 for(int i=0;i<5;i++){ System.out.println("子線程:"+i); } } } class Runner0 implements Runnable{ public void run(){ for(int i=0;i<5;i++) System.out.println("主線程:"+i); } }
上述代碼的運(yùn)行結(jié)構(gòu)如下所示:
當(dāng)然,如果不使用join()方法
public class TestThread6{ public static void main(String[] args) throws InterruptedException { Runner0 run5 = new Runner0(); Thread th5 = new Thread(run5); th5.start(); // th5.join(); for(int i=0;i<4;i++){ System.out.println("子線程:"+i); } } } class Runner0 implements Runnable{ public void run(){ for(int i=0;i<4;i++) System.out.println("主線程:"+i); } }
如上代碼注釋掉jion()方法,
根據(jù)上面兩個(gè)不同的代碼,輸出的不同,很容易就能理解join()方法。
以上這篇基于多線程中join()的用法實(shí)例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用JAVA實(shí)現(xiàn)高并發(fā)無鎖數(shù)據(jù)庫(kù)操作步驟分享
一個(gè)在線2k的游戲,每秒鐘并發(fā)都嚇?biāo)廊?。傳統(tǒng)的hibernate直接插庫(kù)基本上是不可行的。我就一步步推導(dǎo)出一個(gè)無鎖的數(shù)據(jù)庫(kù)操作,詳情看下文2013-11-11關(guān)于多線程常用方法以及對(duì)鎖的控制(詳解)
下面小編就為大家?guī)硪黄P(guān)于多線程常用方法以及對(duì)鎖的控制(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05深入講解spring boot中servlet的啟動(dòng)過程與原理
這篇文章主要給大家介紹了關(guān)于spring boot中servlet啟動(dòng)過程與原理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07Java利用opencv實(shí)現(xiàn)用字符展示視頻或圖片的方法
這篇文章主要介紹了Java利用opencv實(shí)現(xiàn)用字符展示視頻或圖片的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12