多執行緒學習筆記

2021-07-06 08:27:23 字數 1331 閱讀 7358

多執行緒是實現多工的一種方式,多個程序多個執行緒。

建立執行緒:

1.繼承thread類

子類覆蓋父類中的run方法,將執行緒執行的**存放在run中。

2.建立子類物件的同時執行緒也被建立。

3.通過呼叫start方法開啟執行緒。

執行緒的各種狀態:

1.建立狀態

在程式中用構造方法建立了乙個執行緒物件後,新的執行緒物件便處於新建狀態,此時,它已經有了相應的記憶體空間和其他資源,

但還處於不可執行狀態。新建乙個執行緒物件可採用thread類的構造方法來實現,例如「thread thread=new thread();」;

2.就緒狀態

新建執行緒物件後,呼叫該執行緒的start()方法就可以啟動執行緒。當執行緒啟動時,執行緒進入就緒狀態。此時,執行緒將進入執行緒佇列排隊,

等待cpu服務,這表明它已經具備了執行條件。

3.執行狀態

當就緒狀態的執行緒被呼叫並獲得處理器資源時,執行緒就進入了執行狀態。此時,自動呼叫該執行緒物件的run()方法。run()方法定義了該執行緒的操作和功能。

4.堵塞狀態

乙個正在執行的執行緒在某些特殊情況下,如被人為掛起或需要執行耗時的輸入/輸出操作時,將讓出cpu並暫時中止自己的執行,進入堵塞狀態。在可執行狀態下,如果呼叫sleep()、suspend()、wait()等方法,執行緒都將進入堵塞狀態。堵塞時,執行緒不能進入排隊佇列,只有當引起堵塞的原因被消除後,執行緒才可以轉入就緒狀態。

5.死亡狀態

執行緒呼叫stop()方法時或run()方法執行結束後,即處於死亡狀態。處於死亡狀態的執行緒不具有繼續執行的能力。

實現runnable介面

1.子類覆蓋介面中的run方法。

2.通過thread類建立執行緒,並將實現了runnable介面的子類物件作為引數傳遞給thread類的建構函式。

3.thread類物件呼叫start方法開啟執行緒。

執行緒的安全問題

導致安全問題的出現的原因:

多個執行緒訪問出現延遲。

執行緒隨機性。

同步 synchronization

synchr(物件){

需要同步的**;

同步的前提:

同步需要兩個或者兩個以上的執行緒。

多個執行緒使用的是同乙個鎖

同步的弊端:

當執行緒很多時,每個執行緒都會去判斷同步上的鎖,會降低程式的執行效率。

同步函式的鎖是this,而同步**塊的鎖可以是任意物件。

同步應用過多就有可能會出現死鎖,所以不要使用太過分。

因為執行緒執行**一般都是迴圈,只要控制了迴圈即可。

interr 中斷方法。

該方法是結束執行緒的凍結狀態,使執行緒回到執行狀態中來。

多執行緒學習筆記 執行緒

thread類 常用屬性 currentthread 獲取當前正在執行的執行緒 isalive 指示當前執行緒的執行狀態 isbackground 指示是否為後台執行緒 isthreadpoolthread 指示是否屬於託管執行緒池 managedthreadid 獲取執行緒識別符號 name 獲取...

多執行緒學習筆記

多執行緒的相關概念 什麼是程序?當乙個程式開始執行時,它就是乙個程序,程序包括執行中的程式和程式所使用到的記憶體和系統資源。而乙個程序又是由多個執行緒所組成的。什麼是執行緒?執行緒是程式中的乙個執行流,每個執行緒都有自己的專有暫存器 棧指標 程式計數器等 但 區是共享的,即不同的執行緒可以執行同樣的...

多執行緒學習筆記

如通過 ctrl alt 的快捷鍵 啟動任務管理器 程序,就可以看到程序,基本上在執行中的exe程式都可以看成程序。下圖是單任務與多工執行的方式,從圖中可以看出 在單任務執行環境中,後面的任務必須在前面的任務執行完之後才能進行,也就是說單任務的特點是排隊執行,也就是同步。而在多工環境中,不同的任務可...