二话不说,直接上代码了。
1#include <thread> 2#include <iostream> 3#include <mutex> 4using namespace std; 5 6volatile int shared_value = 0; 7volatile int running_count = 1000; 8mutex mtx; 9 10 11void change_value (int n) 12{ 13 for (int i = 0; i < n; i++) 14 { 15 if (mtx.try_lock()) 16 { 17 shared_value++; 18 mtx.unlock(); 19 } 20 } 21 running_count--; 22} 23 24int main () 25{ 26 thread t[100]; 27 for (int i = 0; i < 100; i++) 28 { 29 t[i] = thread (change_value, 1000); 30 } 31 for (int i = 0; i < 100; i++) 32 { 33 t[i].join(); 34 } 35 36 cout << shared_value << endl; 37 cout << running_count << endl; 38 39 40 return 0; 41}