Simple intelligent counters and multi-thread counters for c ++ 11 multi-threaded applications
Code Organization
Code Description
1. smartcounter. cpp
/************************************************************************* > File Name: thread.cpp > Author: wangzhicheng > Mail: 2363702560@qq.com > Created Time: Wed 25 Feb 2015 09:38:30 PM WST ************************************************************************/#include <iostream>#include <vector>#include <thread>#include <mutex>#include <functional>using namespace std;class SmartCounter {private:int cnt;mutex mymutex;public:SmartCounter() {cnt = 0;}void inc() {std::lock_guard<std::mutex>guard(mymutex);while(cnt < 1e6) cnt++;}void show() const {cout << cnt << endl;}};int main() {SmartCounter counter;vector<thread>threads;int i;for(i = 0;i < 16;i++) {threads.push_back(thread(bind(&SmartCounter::inc, &counter)));}for(i = 0;i < 16;i++) {threads[i].join();}counter.show();return 0;}
2. makfile
CC=g++all:$(CC) -std=c++0x -g -o smartcounter smartcounter.cpp -pthread
3. Run the test