c 執行緒 執行緒池和Task關係

2021-10-04 19:32:52 字數 476 閱讀 4184

環境:

執行緒:

thread,由clr提供,可以提供細粒度的執行緒控制,但是在返回值、多個執行緒並行/序列時候顯得功能不足,需要進一步封裝才行,而且執行緒的開啟、停止都需要時間開銷,亂用的話還造成浪費。

執行緒池:

threadpool,由clr提供,提供粗粒度的執行緒控制,主要用來執行短時間內執行的**片段,乙個程序有乙個執行緒池,由clr統一排程。它對執行緒的控制力較少,而且在返回值、多個執行緒並行/序列時候顯也是功能不足。

任務:

task,對threadpool和thread的包裝,可以根據任務時間長短選擇使用執行緒池還是新的執行緒,通過進一步擴充套件,增加了返回值、多個執行緒並行/序列等功能。它的核心是乙個排程器,預設是threadpooltaskscheduler。

關係圖:

C 多執行緒程式設計(1) 執行緒,執行緒池和Task

新開了乙個多執行緒程式設計系列,該系列主要講解c 中的多執行緒程式設計。利用多執行緒的目的有2個 一是防止ui執行緒被耗時的程式占用,導致介面卡頓 二是能夠利用多核cpu的資源,提高執行效率。我沒有進行很深入的講解,是以實際使用為主。我的這個系列主要是 clr via c 的總結,該書的作者jeff...

C 中基於Task的執行緒池實現

實現 實現思路 更多擴充套件 在日常開發中總是免不了接觸到後台任務,如 定時清理 socket通訊等。一般來說後台任務根據執行緒模型可以分為 單執行緒 多執行緒 執行緒池。如果後台任務需要嚴格按時序進行,而且任務和任務之間不能並行處理的話,應該選用單執行緒實現。如果後台任務之間可以並行處理就可以選用...

c 執行緒池 多執行緒

1。設定引數類 using system using system.collections.generic using system.text public class stateinfo 執行緒開啟方法類 using system using system.collections.generic ...