開啟執行緒的幾種方式

2021-08-29 07:30:39 字數 2231 閱讀 1120

目錄

執行緒開啟方式(一)-非同步委託 

執行緒開啟方式(二)-thread類

執行緒開啟方式(三)-執行緒池  

執行緒開啟方式(四)-任務

建立執行緒的一種簡單方式是定義乙個委託,並非同步呼叫它。 委託是方法的型別安全的引用。delegate類 還支援非同步地呼叫方法。在後台,delegate類會建立乙個執行任務的執行緒。

class program

static void main(string args)

int res = a.endinvoke(ar);//取得非同步執行緒的返回值

我們構造乙個thread物件的時候,可以傳遞乙個靜態方法,也可以傳遞乙個物件的普通方法。

使用thread類可以建立和控制線程。thread建構函式的引數是乙個無參無返回值的委託型別。

在這裡哪個先輸出是無法保證了執行緒的執行有作業系統決定,只能知道main執行緒和分支執行緒是同步執行的。在這裡給thread傳遞乙個方法,呼叫thread的start方法,就會開啟乙個執行緒去執行,傳遞的方法。

給執行緒傳遞一些資料可以採用兩種方式,一種方式是使用帶parameterizedthreadstart委託引數的thread建構函式,一種方式是建立乙個自定義的類,把執行緒的方法定義為例項方法,這樣就可以初始化例項的資料,之後啟動執行緒。

1)傳遞靜態方法

還可以傳遞引數,方式1:

2)傳遞乙個物件的普通方法

3)通過lambda表示式(只要有委託引數型別的地方都可以使用lambda表示式)

class program

);t.start();//開始,開始去執行執行緒

建立執行緒需要時間。 如果有不同的小任務要完成,就可以事先建立許多執行緒 , 在應完成這些任務時發出請求。 這個執行緒數最好在需要更多的執行緒時增加,在需要釋放資源時減少。

不需要 自己建立執行緒池,系統已經有乙個threadpool類管理執行緒。 這個類會在需要時增減池中線程的執行緒數,直到達到最大的執行緒數。 池中的最大執行緒數是可配置的。 在雙核 cpu中 ,預設設定為1023個工作執行緒和 1000個 i/o執行緒。也可以指定在建立執行緒池時應立即啟動的最小執行緒數,以及執行緒池中可用的最大執行緒數。 如果有更多的作業要處理,執行緒池中線程的個數也到了極限,最新的作業就要排隊,且必須等待執行緒完成其任務。

C 開啟執行緒幾種方式

通過thread發起執行緒,using system using system.collections generic using system.linq using system.text using system.threading using system.threading tasks na...

Python檔案開啟的幾種方式

python 全棧工程師核心面試 300 問深入解析 2020 版 全文預覽 python 全棧工程師核心面試 300 問深入解析 2020 版 歡迎訂閱 訪問模式 說明 r 以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。w 開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果...

執行緒同步的幾種方式

程序中線程同步的四種常用方式 一 臨界區 ccriticalsection 當多個執行緒訪問乙個獨占性共享資源時,可以使用臨界區物件。擁有臨界區的執行緒可以訪問被保護起來的資源或 段,其他執行緒若想訪問,則被掛起,直到擁有臨界區的執行緒放棄臨界區為止。具體應用方式 1 定義臨界區物件ccritica...