#include <iostream>
#include <thread>
using namespace std;
static const long STEP = 100000000;
long long sum[10] = { 0 };
long long totalSum = 0;
int Flag[10] = { 0 };
void getSum(int idx) {
long begin = idx * STEP;
for (long i = 0; i < STEP; i++){
sum[idx] += begin + i;
}
Flag[idx] = 1;
printf("sum[%d] = %lld\n", idx, sum[idx]);
}
int main()
{
for (int i = 0; i < 10; i++)
{
thread t(getSum, i);
t.detach();
}
while(true)
{
int finishFlag = 0;
for (int i = 0; i < 10; i++)
finishFlag += Flag[i];
if (finishFlag == 10) {
for (int i = 0; i < 10; i++)
totalSum += sum[i];
cout << "totalSum = " << totalSum << endl;
break;
}
}
return 0;
}