多執行緒學習筆記

2022-01-22 07:05:53 字數 2269 閱讀 4314

一、多執行緒簡介

我們所說的 windows是乙個多工作業系統,是說windows能同時執行多個程式。當我們每執行乙個程式的時候其實就開啟了乙個程序,程序中包含了這個程式執行所需要的文字**、變數和動態分配的記憶體、堆疊等資源,程序之間先對獨立,乙個程序不會干擾另乙個程序的執行。在.net中程序可以包含多個應用程式域和執行緒,應用程式域是乙個邏輯區域(不做詳細介紹)。執行緒是程序中的基本執行單元,執行緒可以幫乙個程序同時做多件事,執行緒主要由執行緒id,當前指令指標(pc),暫存器集合和堆疊組成,同一程序的多個執行緒可以在巨集觀上併發的執行,但在微觀上cpu同時只能執行乙個執行緒,所以執行緒也就有了就緒,阻塞,執行三種狀態,具體cpu執行那個執行緒這由

系統根據執行緒的優先順序決定。程式入口的執行緒叫主線程,在.net中就是main()方法作為入口的,呼叫main()方法系統就會建立乙個主線程。

所謂多執行緒就是在乙個程序內執行多個執行緒來協同完成工作,這樣能在一定程度上提高程式的效能,最明顯的就是在做winform開發的時候,如果不用多執行緒,當我們處理資料的時候程式介面是卡死的,這就是因為在只有乙個執行緒的時候,處理資料的和ui是在乙個執行緒(主線程)中,但處理資料的時候這個執行緒是不會去處理前台ui的,所以我們會感覺程式卡死了。多執行緒的缺點就是cpu要花時間來處理要執行那個執行緒.....

二、.net多執行緒操作

在.net中操作多執行緒就必須用到thread類了,thread包含在system.threading命名空間中。system.threading命名空間包含了多執行緒所需要的類庫,其中thread和threadpool是經常用到的。建立多執行緒就是同多thread提供的方法執行方法的委託。在.net中建立執行緒最簡單的方法就是用thread的threadstart委託開啟新的執行緒,threadstart委託定義為public delegate void threadstart(),就是說該委託只能接受返回值為void並且沒有引數的方法,當然如果要多執行緒執行帶有引數的可以使用parameterizedthreadstart委託,能接受返回值為void引數為object的引數。

1、通過thread常用到的屬性和方法

屬性:

currentcontext

獲取執行緒正在其中執行的當前上下文。

currentthread 獲取當前正在執行的執行緒。

isalive 

獲取乙個值,該值指示當前執行緒的執行狀態。

isbackground 

獲取或設定乙個值,該值指示某個執行緒是否為後台執行緒。

managedthreadid 獲取當前託管執行緒的唯一識別符號。

name 獲取或設定執行緒的名稱。,可以沒有。

priority 獲取或設定乙個值,該值指示執行緒的排程優先順序。。

threadstate 獲取乙個值,該值包含當前執行緒的狀態。

方法:

abort() 終止本執行緒。

join() 

阻塞呼叫執行緒,直到某個執行緒終止時為止。

resume() 繼續執行已掛起的執行緒。

start() 執行本執行緒。

suspend() 掛起當前執行緒,如果當前執行緒已屬於掛起狀態則此不起作用。

sleep() 把正在執行的執行緒掛起一段時間。

2、通過threadstart建立執行緒

1

class

program222

}23console.readkey();24}

25 }

1

class

person24

public

void

message()517

//執行緒掛起500毫秒

18 thread.sleep(500

);19

if (i > 30)20

24}25}

26 }

執行結果是

可見執行person類message方法的執行緒和主線程在並行的執行。

多執行緒學習筆記 執行緒

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

多執行緒學習筆記

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

多執行緒學習筆記

多執行緒是實現多工的一種方式,多個程序多個執行緒。建立執行緒 1.繼承thread類 子類覆蓋父類中的run方法,將執行緒執行的 存放在run中。2.建立子類物件的同時執行緒也被建立。3.通過呼叫start方法開啟執行緒。執行緒的各種狀態 1.建立狀態 在程式中用構造方法建立了乙個執行緒物件後,新的...