利用 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++執行緒
- VC多執行緒 C++ 多執行緒執行緒C++
- c++11 新特性實戰 (一):多執行緒操作C++執行緒
- 多執行緒伺服器的實現執行緒伺服器
- C++ 多執行緒C++執行緒
- c++多執行緒C++執行緒
- 如何實現多執行緒執行緒
- 多執行緒原理實現執行緒
- 多執行緒實現多工二執行緒
- 多執行緒實現多工一執行緒
- 利用C++多執行緒優化n王后問題C++執行緒優化
- Python並行程式設計(二):多執行緒鎖機制利用Lock與RLock實現執行緒同步Python並行行程程式設計執行緒
- 多執行緒Http代理伺服器 Java實現執行緒HTTP伺服器Java
- Java多執行緒實現方式Java執行緒
- 多執行緒具體實現執行緒
- Java多執行緒的實現Java執行緒
- JavaScript如何實現多執行緒?JavaScript執行緒
- Runnable介面實現多執行緒執行緒
- python多執行緒實現Python執行緒
- NSThread實現多執行緒thread執行緒
- NSThread多執行緒實現thread執行緒
- 程式設計思想之多執行緒與多程式(4):C++ 中的多執行緒程式設計執行緒C++
- 【多執行緒高併發程式設計】二 實現多執行緒的幾種方式執行緒程式設計
- C++ 多執行緒程式設計總結C++執行緒程式設計
- 多執行緒-匿名內部類的方式實現多執行緒程式執行緒
- 使用 C++ 11 編寫 Linux 多執行緒程式C++Linux執行緒
- C++使用Boost多執行緒C++執行緒
- C++多執行緒學習C++執行緒
- 多執行緒C++更新MYSQL執行緒C++MySql
- 託管C++執行緒鎖實現C++執行緒
- 多執行緒爬蟲實現(上)執行緒爬蟲
- java實現多執行緒的方法Java執行緒
- 面試-實現多執行緒的方式面試執行緒
- Java多執行緒的實現方法Java執行緒
- C++多執行緒筆試程式設計題C++執行緒筆試程式設計
- 多執行緒-多執行緒方式1的程式碼實現執行緒
- c++11 執行緒間同步---利用std::condition_variable實現C++執行緒
- C#多執行緒程式設計實戰1.1建立執行緒C#執行緒程式設計