STL Thread
2017-09-30
多執行序(Thread),是C++11後一個有效加速程式的方法。即便只有單一質性序也可以大幅加快程式執行速度。
要注意的是在使用thread時,要在compile中將cpp編譯成obj的指令(-c)加入-lpthread,此篇文章指講述我使用過的指令當作學習紀錄,想要跟加深入了解救自己翻reference吧。
- 簡易介紹
- 運用於 function
- 運用於 class 之 member function
簡易介紹
圖片來自於MSDN的網頁,Thread其實觀念並不複雜,就只是同時啟動多個執行序。重要的是要保證每個執行序的資料獨立性,如果共用的話會產生double free的錯誤。先完成的執行續做了free的動作,這會導致還在執行的執行序產生不可預期的錯誤。此種錯誤debug上也相當困難故須謹慎。
join為Thread的member function,功用為在此處等待其物件執行完成。
運用於 function
|
|
運用於 class 中之 member function
|
|
此篇大致上作為紀錄,筆者尚未摸透Thread之底層執行法故不做贅述
Reference:
Thread cplusplus
官方文件
Heresy Space