Java基礎 Thread之jion 詳解

2021-08-19 04:38:18 字數 918 閱讀 5579

在多執行緒的程式設計中,我們會遇到需要使用join()的情況,在我的理解裡就是在並行的狀態下進行序列執行。

public

final

void

join()

throws interruptedexception

//等待該執行緒終止。

該方法會丟擲中斷異常,實際上是應為join是利用wait()函式來構造的。即當前執行緒呼叫目標執行緒的wait(),造成當前執行緒的阻塞,但是不會影響其他執行緒的並行,這句話可能有點難理解,舉兩個例子。

class

joindemo

catch (interruptedexception e)

t2.start();

for(int i=50;i>0;i--)

system.out.println(thread.currentthread().getname()+"..."+i);

}}class

demo

implements

runnable}}

**中三個執行緒,執行結果如下

可以明顯看到,t1執行緒結束其他兩個執行緒才開始並行執行,從這裡來看t2也受影響,其實t2沒有受到影響,是因為主線程停住了,導致t2無法開啟。如果先開啟t2,再t1.join(),就可以發現如下情況。

一句話哪個執行緒裡有其他執行緒join,哪個執行緒就阻塞,形象一點就是,你在排隊呢,別人插隊,你就得等插隊的人先排完,畢竟是文明人不能和社會人計較。

python開發之thread執行緒基礎例項入門

說到執行緒,我們要知道啥是序列,啥是並行程式 舉個例子 序列程式,就是乙個乙個的執行程式 python threading import time 每一秒中,輸出 this is a demo def serial 序列輸出 time.sleep 1 print this is a demo def...

Java多執行緒 Thread

今天工作上用到了一些執行緒方面的知識,有些知識點學了不用一段時間後就會被忘記的,所以下來後覺得還是應該總結一下基礎知識,方面以後回顧。多執行緒程式在較低的層次上擴充套件了多工的概念 乙個程式同時執行多個任務。通常,每乙個任務稱為乙個執行緒,它是執行緒控制的簡稱。可以同時執行乙個以上執行緒的程式稱為多...

Thread學習基礎(一)

實現多執行緒的兩種方法 繼承thread,實現runnableclass thread1 extends thread class myrunnable implements runnable public class demo1 start thread.sleep int milisecond ...