一個初級的線程函數(shù)
創(chuàng)建10個線程,每個線程內(nèi)進(jìn)行計數(shù)操作,有鎖.?
對認(rèn)識線程,有一定的幫助作用。
#include <iostream> // std::cout #include <thread> // std::thread #include <mutex> // std::mutex using namespace std; volatile int counter(0); //定義一個全局變量,當(dāng)作計數(shù)器,用于累加 std::mutex mtx; //用于包含 counter 的互斥鎖 void thrfunc() { for(int i=0;i<50;++i) { // 互斥鎖上鎖 if(mtx.try_lock()) { ++counter; // 計數(shù)器累加 cout<<counter<<endl; mtx.unlock(); // 互斥鎖解鎖 } else { cout <<"try_lock false"<<endl; } } } int main(int argc, const char* argv[]) { std::thread threads[10]; for(int i=0;i<10;++i) { threads[i] = std::thread(thrfunc); // 啟動10個線程 } for(auto & th:threads) { th.join();//等待10個線程結(jié)束 } cout <<"count to "<<counter<<" successfully "<<endl; return 0; } //g++ demo1.cpp -o demo1 -l pthread
?
本文摘自 :https://www.cnblogs.com/