Question: Modify and run the program shown below in the following way. There is an array of 20 elements defined in the program. The elements of
Modify and run the program shown below in the following way. There is an array of 20 elements defined in the program. The elements of the array are:
[20 18 16 14 12 10 8 6 4 2 -10 -20 -30 -40 15 23 25 75 45 33]. Thread 1 adds the first four elements (i.e., 20, 18, 16, 14), Thread 2 adds the next four elements (i.e., 12, 10, 8, 6), , Thread 5 adds the last four elements (25, 75, 45, 33). Finally, the sum of all the 20 elements is printed by the program.
include
#include
#include
#define NUM_THREADS 3
int counter=1;
void *PrintHello(void *threadid)
{
counter = 2*counter+ (int) threadid;
printf(" Thread Id: %d Counter: %d ", threadid, counter);
pthread_exit(NULL);
}
int main(int argc, char *argv[])
{
pthread_t threads[NUM_THREADS];
int rc, t;
for(t=0;t printf("Creating thread %d ", t); rc = pthread_create(&threads[t], NULL, PrintHello, (void *)t); if (rc){ printf("ERROR; return code from pthread_create() is %d ", rc); exit(-1); } } printf(" Counter: %d ", counter); pthread_exit(NULL); }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
