多執行緒程式設計(一)

2021-10-08 02:13:55 字數 502 閱讀 6654

引用標頭檔案thread

建立執行緒:thread mythread(多執行緒函式)

阻塞主線程直到子執行緒執行完畢:mythread.join() 

分離主線程和子執行緒,使得主線程和子執行緒可以同步執行下去(一旦分離後,就無法再使執行緒join),主線程結束後子執行緒也結束:mythread.detach()

檢查執行緒是否能join或者detach:mythread.joinable()

std::this_thread::get_id():獲取當前執行緒的id

執行緒函式的引數有引用時,從主線程中傳入引數,並不是正常的引用,而是又複製了乙個值供子執行緒使用。也就是如果傳入的是類物件,則類物件會拷貝構造乙個物件傳入子執行緒。且執行緒函式的引數必須為const 類名& 變數名

由於執行緒函式傳入的類物件引用不是真正的引用,是傳入了拷貝構造的新的物件。所以為了將真正的物件傳入非複製,則需要用到:std::ref(),此函式中傳入類物件再傳入執行緒函式,即可實現直接傳入。這時執行緒函式的引數不需要再加上const

多執行緒程式設計(一)

程式 完成特定功能的一系列指令的集合 c 源程式 經過編譯鏈結後生成可執行檔案,可執行檔案稱為程式,它包含 段和資料段。儲存在磁碟上 程序 程式的一次動態執行過程,強調動態性,它包括 段 資料段 堆疊段 pcb 乙個程序只能對應乙個程式,乙個程式可以對應對個程序 執行緒 在乙個程式裡的乙個執行線路就...

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

1 建立執行緒 有乙個比較特殊的執行緒,就是主線程或者稱為初始執行緒,它是當乙個程序被建立時建立的。而其他執行緒則是在初始執行緒中呼叫pthread create建立的。建立的新執行緒初始為ready狀態,等待處理器排程。2 執行執行緒 執行緒被建立後,就會執行phtread create的star...

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

csharp view plain copy 實現伺服器端 建立client類 using system using system.collections.generic using system.linq using system.text namespace chartserver endreg...