【轉載】C++多線程類Thread(C++11)

轉載 http://www.javashuo.com/article/p-wbjmailb-nq.html
點我前往html

C++多線程類Thread(C++11)
安全

C++11中std命名空間將Boost庫中的Thread加入,Boost的多線程從準標準變爲標準,在深度學習以及應用程序開發中常常用到多線程,這裏將其用法整理複習,以demo的形式複習,每次遇到問題或者忘記了老是百度,用完了就是忘記,好記性不如爛筆頭,Goahead!多線程

頭文件爲#include ,經過std::thread應用。就以Hello thread開始吧,須要注意的是join()函數和detach()函數的區別,數據同步操做mutex(需包含include ): 互斥鎖 併發

一、  普通函數多線程調用函數


(1)無參數函數學習

 

(2)有參數函數spa

 

二、    在類內部建立線程.net

(1)類內部函數爲靜態函數線程

在這裏start()和hellothread()方法都必須是static方法。 3d

(2)在Singleton模式內部建立線程: 

 


3 、用類內部函數在類外部建立線程:

很是普通的類,只是用多線程調用其內部的函數


四、 join()和detach()的區別:

join()的做用前面已經提到,主線程等待子線程結束方可執行下一步(串行),detach()是的子線程放飛自我,獨立於主線程併發執行,主線程後續代碼段無需等待。看看效果:

(1)join()

(2)detach()

 

五、 數據同步(線程同時操做一個數據的安全性):

 

如有不當之處還請各位看官批評指正! 不勝感謝

參考:http://www.cppblog.com/janvy/archive/2010/03/25/110498.aspx

相關文章
相關標籤/搜索