#include
#include
class
scoped_thread
intstart
(std::thread _t)
~scoped_thread()
scoped_thread
(scoped_thread const&)
=delete
; scoped_thread &
operator
=(scoped_thread const&)
=delete
;private
: std::thread m_thread;};
struct func
intoperator()
()return0;
}};int
main()
執行結果(擷取部分):
std::thread(func1) 開始建立乙個新執行緒,新執行緒執行乙個可呼叫的函式物件func1;
然後start中將執行緒所有權轉移給類成員變數m_thread,繼續執行執行緒,在析構函式中等待執行緒執行完成。
單個的執行緒所有權轉移我們看到了,下面再使用vectot來簡單拓展一下執行緒的批量操作
#include
#include
#include
#include
#include
void
print
(int i)
intmain()
執行結果如下:
執行緒的批量建立與等待。這個例子雖然看著簡單,但是是本專欄部落格多執行緒開始邁向自動化管理的第一步。
此處注意for_each裡的mem_fn的用法,
人,總是要有一點精神的,不是嗎
c 11多執行緒併發程式設計學習 5 建立多執行緒
一.建立多個執行緒 1 include2 include3 include4 include5 using namespace std 6 7 void fun int i 執行緒執行函式 8 20 21 等待所有子執行緒結束,使用迭代器很方便 22 for auto iter threads.be...
C 11併發程式設計 多執行緒std thread
c 11引入了thread類,大大降低了多執行緒使用的複雜度,原先使用多執行緒只能用系統的api,無法解決跨平台問題,一套 平台移植,對應多執行緒 也必須要修改。現在在c 11中只需使用語言層面的thread可以解決這個問題。所需標頭檔案 thread noexcept 乙個空的std thread...
C 11 多執行緒 併發程式設計總結
建立std thread,一般會繫結乙個底層的執行緒。若該thread還繫結好函式物件,則即刻將該函式執行於thread的底層執行緒。執行緒相關的很多預設是move語義,因為在常識中線程複製是很奇怪的行為。joinable 是否可以阻塞至該thread繫結的底層執行緒執行完畢 倘若該thread沒有...