C 多執行緒程式設計(一)

2021-10-09 13:23:44 字數 831 閱讀 7993

使用c++可以讓程式交替執行兩個程式,基於程序的多工處理和同一程式片段的併發執行。

此外,筆者在進行多執行緒程式設計中使用的是linux作業系統。

首先,可以建立乙個執行緒。

#include

pthread_create (thread, attr, start_routine, arg)

thread是指向執行緒識別符號的指標。比如執行緒的tid的位址。

attr可以用來設定執行緒屬性,可以指定執行緒屬性物件,也可以使用預設值null。

start_routine 執行緒執行函式起始位址,一旦執行緒被建立就會執行,這個為函式指標。

arg為執行函式的引數。必須通過把引用作為指標強制轉化為void型別進行傳遞。如果沒有傳遞引數就使用null。

如果建立執行緒成功,函式就返回0,如果返回不是0就會建立失敗。

終止執行緒:

pthread_exit(status)用於顯式的退出乙個執行緒,當執行緒完成工作時不需要存在時被呼叫。

先touch乙個檔案,再用vim編譯器編譯,

再用 -lpthread庫編譯這個程式:

g++ test.cpp -lpthread -o test.o

將其轉化為可執行檔案,然後

./test.o

最後輸出為

這個建立了5個執行緒,並接受輸入的引數。

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...