Question: #include using namespace std; int sum; const int num _ threads = 4 ; void foo ( int val ) { for ( int i

#include using namespace std; int sum; const int num_threads =4; void foo(int val){ for(int i =0; i <5; i++){ sum = sum + val; }} void bar_1(){ thread t[num_threads]; for (int i =0; i < num_threads; i++){ t[i]= thread(foo, i +1); t[i].join(); } cout << "Sum is "<< sum << endl; } void bar_2(){ thread t[num_threads]; for (int i =0; i < num_threads; i++){ t[i]= thread(foo, i +1); } cout << "Sum is "<< sum << endl; for (int i =0; i < num_threads; i++){ t[i].join(); }} void bar_3(){ thread t[num_threads]; for (int i =0; i < num_threads; i++){ t[i]= thread(foo, i +1); } for (int i =0; i < num_threads; i++){ t[i].join(); } cout << "Sum is "<< sum << endl; } int main(){ sum =0; bar_1(); sum =0; bar_2(); sum =0; bar_3(); } a) The code on the left outputs three values for sum (via the cout statements in the bar_1, bar_2, and bar_3 functions). sum is a global variable and see that its value is set to 0 before each call of bar functions. What is the maximum possible value one can see on the screen? (Hint: The maximum is the same for all outputs)._____________ b)(10 pts) What is the minimum possible value for each output? (Hint: The minimum values are different for different bar function calls). bar_1: Sum is (Min)________ bar_2: Sum is (Min)________ bar_3: Sum is (Min)________

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!