#include #include #include #include using namespace std; mutex sum_mutex; void square(int x, int &sum) { int temp = x * x; sum_mutex.lock(); sum += temp; sum_mutex.unlock(); //sum += x * x; } int main() { int sum = 0; vector allthread; for (int i = 1; i <= 20; i++) { allthread.push_back(thread(&square, i, ref(sum))); } for (auto& th : allthread) { th.join(); } cout << "sum = " << sum << endl; return 0; }