C 多執行緒程式設計

2021-10-04 15:31:36 字數 522 閱讀 6998

執行緒的目的是代表程序執行工作。如果程序擁有多個執行緒,則每個執行緒執行一些子任務,買個子任務是程序執行的整個任務的一部分。程序根據特定的策略和方法來委託執行緒進行工作,通過這些策略或方法來組織委託的具體實現。下面是一些通用模型:

中心執行緒(boss執行緒)建立其他執行緒(worker執行緒),並給每個worker執行緒分配任務。每個worker執行緒通過boss執行緒來指派任務。boss執行緒可能在每個執行緒完成它們的任務前一直等待。

所有執行緒都具有相同的工作狀態。這些執行緒稱為對等執行緒(peer thread)。對等執行緒建立執行任務所需要的所有執行緒,但是不執行委託職責。對等執行緒可以從單個輸入流處理請求,這些輸入流被所有執行緒共享,或者每個執行緒都有其自己的輸入流。

裝配線方法近似於分階段處理輸入流。每一階段都是乙個在輸入單元上執行工作的執行緒。當輸入單元通過流所有的階段時,輸入的處理工作就算完成了。

生產者執行緒生產資料供消費者執行緒消費。資料儲存在生產者執行緒和消費者執行緒共享的儲存塊中。

各種模型的pthread庫實現參考《c++並行與分布式程式設計》,c++11也引用了新的執行緒庫

C 多執行緒程式設計

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

C 多執行緒程式設計

乙個程序通常定義為程式的乙個例項。在win32中,程序佔據4gb的位址空間。與它們在ms dos和16位windows作業系統中不同,win32程序是沒有活力的。這就是說,乙個win32程序並不執行什麼指令,它只是佔據著4gb的位址空間,此空間中有應用程式exe檔案的 和資料。exe需要的任意dll...

C 多執行緒程式設計

建立執行緒的函式 handle createthread lpsecurity attributes lpthreadattributes,使用預設安全形態,設為null,表明不可被子執行緒繼承 size t dwstacksize,初始棧大小,預設值0表示使用與呼叫該函式的執行緒相同的棧大小 lp...