c 11 thread跨平台使用的簡單例項

2021-10-05 03:09:40 字數 1040 閱讀 7810

std::thread是c++11新引入的執行緒標準庫,通過其可以方便的編寫與平台無關的多執行緒程式,雖然對比針對平台來定製化多執行緒庫會使效能達到最大,但是會喪失了可移植性。

在使用std::thread的時候,對建立的執行緒有兩種操作:等待/分離,也就是join/detach操作。join()操作是在std::thread t(func)後「某個」合適的地方呼叫,其作用是**對應建立的執行緒的資源,避免造成資源的洩露。detach()操作是在std::thread t(func)後馬上呼叫,用於把被建立的執行緒與做建立動作的執行緒分離,分離的執行緒變為後台執行緒,其後,建立的執行緒的「死活」就與其做建立動作的執行緒無關,它的資源會被init程序**。1

#include

#include

using

namespace std;

void

testthread1()

;void

testthread2()

;int

main()

void

testthread1()

}void

testthread2()

}

c++11的chrono庫定義了常用的時間間隔。2

std::this_thread::

sleep_for

(std::chrono::

seconds(1

));//休眠一秒

std::this_thread::

sleep_for

(std::chrono:: milliseconds (1)

);//休眠1毫秒

示例demo儲存為乙個cpp檔案c_thread.cpp,g++編譯命令為如下截圖。注意的地方是需要通過-std=c++11指定以c++11標準編譯,並增加鏈結選項 -pthread。3

c 11 thread使用介紹

原因 c11裡面的thread用法,故在此進行梳理一下 概況 通過類內呼叫與跨類進行呼叫進行 分析。首先分析一下thread標頭檔案 explicit thread fn fx,args ax thread thread other noexcept bool joinable 判斷執行緒宣告週期是...

C 11 thread 使用類成員變數

看到網上的例子大多是記錄如何呼叫乙個外部全域性函式介面,不過,先說明下thread的用法,後續再說明如何使用物件的方式使用thread 返回乙個型別為 std thread id 的物件。請看下面例子 include include include void foo int main 檢查當前的執行...

深入 C 11 thread 類的實現

雖然基本上也猜得到 c 11 thread的底層實現肯定是呼叫 crt 的 來實現的。但是還是好奇心想找到它的實現 我們從thread.join 找起 在 vc 2017 直接點找到 thread 標頭檔案 直接右鍵 轉到定義 include class thread inline void thr...