多執行緒程式設計1

2021-09-25 23:23:38 字數 774 閱讀 9310

管理執行緒的函式和類在< thread >中宣告,而保護共享資料的函式和類在其他標頭檔案中宣告

每個執行緒都必須有乙個初始函式,新執行緒的執行從這裡開始。對於應用程式來說,初始執行緒是main(),但是對於其他執行緒,可以在std::thread物件的建構函式中指定,本例中,被命名為t的std::thread物件擁有新函式hello()作為其初始函式

與直接寫入標準輸出或是從main()呼叫hello()不同,該程式啟動了乙個全新的執行緒來實現,將執行緒數量一分為二——初始執行緒始於main(),而新執行緒始於hello()。

新的執行緒啟動之後,初始執行緒繼續執行。如果它不等待新執行緒結束,它就將自顧自地繼續執行到main()的結束,從而結束程式——有可能發生在新執行緒執行之前。這就是為什麼在這裡呼叫 join() 的原因——這會導致呼叫執行緒(在main()中)等待與 std::thread 物件相關聯的執行緒,即這個例子中的t

#include

#include

using namespace std;

void

hello()

int main()

使用c++執行緒庫啟動執行緒,可以歸結為構造 std::thread 物件:

void

do_some_work()

;std:

:thread my_thread

(do_some_work)

;

join(),阻塞主線程,主線程等待該執行緒執行完再執行

detach(),分離執行緒

多執行緒程式設計1

一,建立執行緒和退出執行緒 在linux系統中,所有與執行緒相關的函式都是以pthread開頭的。pthread create函式用於在當前程序中加入新的執行緒。linux系統中線程的建立與unix系統存在著不同。在linux系統中,當呼叫pthread create函式來建立執行緒時,系統首先先建...

多執行緒程式設計(1)

一 建立執行緒 函式 handle createthread lpsecurity attributeslpthreadattributes sddworddwstacksize initial stack sizelpthread start routinelpstartaddress threa...

多執行緒程式設計 1

為了以後忘記以後可以再看,所以記錄下.程式開始後將有乙個主線程,即 thread.currentthread乙個簡單的示例,阻塞當前執行緒 這裡建立了2個執行緒,然後呼叫start方法啟動執行緒.修改上面程式,阻塞第1個執行緒 可以看到兩個執行緒互不影響 我想能不用執行緒就不要用,因為執行緒很複雜....