多執行緒知識點整理

2021-05-27 20:41:17 字數 737 閱讀 4622

基本概念

多執行緒程式在較低的層次上擴充套件了多工的概念:乙個程式同時執行多個任務,通常,每乙個任務稱為乙個執行緒,它是執行緒控制的簡稱。可以同時執行乙個以上執行緒的程式稱為多執行緒程式。

多程序與多執行緒的區別:

每個程序擁有自己的一整套變數,而執行緒則共享資料。

相關介面

執行緒的狀態

要獲得乙個執行緒的狀態,呼叫getstate方法

沒有乙個狀態叫做中斷,中斷方法interrupt只是用來申請,當呼叫該方法時,執行緒的中斷狀態被置位。每個執行緒都應該不時地檢查這個標誌,以判斷執行緒是否被中斷。

如果執行緒被阻塞,就無法檢測中斷狀態。當乙個被阻塞的執行緒(呼叫sleep或者wait)上呼叫interrupt方法時,阻塞呼叫將會被interruptedexception異常中斷。被中斷的執行緒可以決定如何響應中斷。

如果在中斷狀態被置位時呼叫sleep方法,它不會休眠,相反,它將清除這一狀態並丟擲interruptedexception。因此如果你的迴圈呼叫sleep,不會檢測中斷狀態,應捕獲interruptexception異常

執行緒的屬性 同步

阻塞佇列

執行緒安全的集合

執行器構建乙個新的執行緒是有一定代價的,因為涉及與作業系統的互動。如果程式中建立了大量的生命週期很短的執行緒,應該使用執行緒池。乙個執行緒池中包含許多準備執行的空閒執行緒,將runnable物件交給執行緒池,就會有乙個執行緒呼叫run方法。當run方法退出時,執行緒不會死亡,而是在池中準備為下乙個請求提供服務。

多執行緒知識點整理

多執行緒 多執行緒其實就是指執行緒在同一時間在cpu上同時進行。具體分為兩種模式 一種是指多條執行緒在同乙個cpu上分段時間執行,其實就是並行的意思。一種是多條執行緒在cpu上同時執行的,其實就是併發的意思。多執行緒的問題 多執行緒主要的問是,在多條執行緒運 況下,會出現以下情況 1.多個執行緒同時...

多執行緒知識點整理(一)

多執行緒是為了提高cpu的處理效率,也即提高程式的執行效率而引進的。因為在作業系統中cup,記憶體,硬碟 io裝置 3者之間存在處理速度上的顯著差異這是硬體層面無法解決的矛盾。cpu的處理速度 記憶體 硬碟 io裝置 為了平衡和記憶體之間速度差異cpu中引入了快取,為了能分時復用cpu引入了多執行緒...

多執行緒 執行緒間通訊知識點整理

執行緒間通訊 多個執行緒在處理同一資源,但是任務卻不同。等待 喚醒機制。涉及的方法 1,wait 讓執行緒處於凍結狀態,被wait的執行緒會被儲存到執行緒池中。2,notify 喚醒執行緒池中乙個執行緒 任意 3,notifyall 喚醒執行緒池中的所有執行緒。這些方法都必須定義在同步中。因為這些方...