c 11特性之std thread 高階

2021-07-06 09:53:27 字數 822 閱讀 3310

部落格[c++11特性之std::thread--初識]( "std::thread")

講了std::thread::join和std::thread::detach的用法。今天就再來點深入的。

先看看這個:

int main()

一旦 detached, 就不能再join

這個時候總要有新東西出場了:

joinable()

#include // std::cout

#include // std::thread

void mythread()

int main()

之前的例子中, 我們都是使用的普通的函式. 我們本可以使用更多,尤其你要牢記的就是c++是乙個物件導向。

#include 

#include

class myfunctor

};int main()

上面的**,我建立了乙個函式物件,把它付給乙個執行緒任務

也許你會像下面這樣寫:

std:

:thread t(myfunctor());

但是,編譯時通不過的,你應該這樣寫:

std:

:thread t((myfunctor()));

必須加乙個 () 來封裝 myfunctor().

c 11特性之std thread 高階二

繼續c 11的std thread之旅!下面討論如何給執行緒傳遞引數 這個例子是傳遞乙個string include include include void thread function std string s int main 如果執行,我們可以從輸出結果看出傳遞成功了。良好程式設計習慣的人...

C 11併發程式設計 多執行緒std thread

c 11引入了thread類,大大降低了多執行緒使用的複雜度,原先使用多執行緒只能用系統的api,無法解決跨平台問題,一套 平台移植,對應多執行緒 也必須要修改。現在在c 11中只需使用語言層面的thread可以解決這個問題。所需標頭檔案 thread noexcept 乙個空的std thread...

C 11多執行緒std thread建立方式

include include include include include include using namespace std pragma region c 11 thread基本建立方法 if 1 案例一 void my print 案例二 class ta ta 案例二 void op...