利用 C++ 11 特性實現多執行緒計數器
許多平行計算程式,需要確定待計算資料的編號,或者說,多執行緒間透過編號而耦合。此時,透過利用C++ 11提供的atomic_?type型別,可實現多執行緒安全的計數器,從而,降低多執行緒間的耦合,以便於書寫多執行緒程式。
以計數器實現為例子,演示了多執行緒計數器的實現技術方法,程式碼如下:
//目的: 測試利用C++ 11特性實現計數器的方法//作業系統:ubuntu 14.04//publish_date: 2015-1-31//注意所使用的編譯命令: g++ -Wl,--no-as-needed -std=c++0x counter.cpp -lpthread#include#include #include #include using namespace std;atomic_int Counter(0);int order[400];void work(int id){ int no; for(int i = 0; i threads; //建立多執行緒訪問計數器 for (int i = 0; i != 4; ++i) //執行緒工作函式與執行緒標記引數 threads.push_back(thread(work, i)); for (auto & th:threads) th.join(); //最終的計數值 cout 注意編譯命令的引數,尤其,-lpthread
否則,若無該連結引數,則編譯不會出錯,但會發生執行時錯誤:
terminate called after throwing an instance of ‘std::system_error’
what(): Enable multithreading to use std::thread: Operation not permitted
已放棄 (核心已轉儲)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/854/viewspace-2801799/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- c++ 11 執行緒池---完全使用c++ 11新特性C++執行緒
- 【c++】c++11實現執行緒池C++執行緒
- c++11 新特性實戰 (一):多執行緒操作C++執行緒
- 多執行緒伺服器的實現執行緒伺服器
- c++多執行緒C++執行緒
- C++ 多執行緒C++執行緒
- Python並行程式設計(二):多執行緒鎖機制利用Lock與RLock實現執行緒同步Python並行行程程式設計執行緒
- 如何實現多執行緒執行緒
- Linux C++ 多執行緒程式設計LinuxC++執行緒程式設計
- 多執行緒實現多工二執行緒
- 多執行緒實現多工一執行緒
- 使用Java實現多執行緒程式設計Java執行緒程式設計
- C++多執行緒:atomicC++執行緒
- c++11 執行緒間同步---利用std::condition_variable實現C++執行緒
- Java多執行緒的實現Java執行緒
- Java多執行緒實現方式Java執行緒
- 【unity】 Loom實現多執行緒UnityOOM執行緒
- JavaScript如何實現多執行緒?JavaScript執行緒
- Runnable介面實現多執行緒執行緒
- 多執行緒具體實現執行緒
- 【多執行緒高併發程式設計】二 實現多執行緒的幾種方式執行緒程式設計
- 利用訊號量實現執行緒順序執行執行緒
- [C++]C風格、C++風格和C++11特性的執行緒池C++執行緒
- 多執行緒C++更新MYSQL執行緒C++MySql
- C++多執行緒學習C++執行緒
- C++使用Boost多執行緒C++執行緒
- 託管C++執行緒鎖實現C++執行緒
- c++多執行緒程式設計:C2672C++執行緒程式設計
- 【C++11】c++11實現執行緒池C++執行緒
- 多執行緒爬蟲實現(上)執行緒爬蟲
- 用Pthread實現多執行緒操作thread執行緒
- 【連載 02】多執行緒實現執行緒
- C#多執行緒程式設計實戰1.1建立執行緒C#執行緒程式設計
- C++多執行緒基礎教程C++執行緒
- 面試-實現多執行緒的方式面試執行緒
- 【QT】QtConcurrent::run()+QThreadPool實現多執行緒QTthread執行緒
- 純Mutex實現多執行緒交替列印Mutex執行緒
- 用多執行緒,實現併發,TCP執行緒TCP