HOW DO I COMPLETE THIS CODE SUCCESSFULLY? Using the thread3.c program provided below, itt will require some code modification. Those modifications include: - instead of 10,000 threads, create 40,000...


HOW DO I COMPLETE THIS CODE SUCCESSFULLY?


Using the thread3.c program provided below, itt will require some code modification. Those modifications include:


- instead of 10,000 threads, create 40,000 threads in total


- instead of creating just one kind of thread, create 4 kinds of threads (each with 10,000 instances)


o group 1: adds 1 to counter


o group 2: adds 5 to counter


o group 3: subtracts 2 from counter


o group 4: subtracts 10 from counter


Run the program 5 times and take a screen shot showing the output of the run. Add comments throughout the code please!



thread3.c given code:


// Compile with:
//
// clang -lpthread thread3.c -o thread3
// or
// gcc -lpthread thread3.c -o thread3
//
#include
#include
#include


#define NTHREADS 10000


// shared variable
int counter = 0;


// thread to be executed - unspecified variable arguments
void *thread (void *vargp) {
counter = counter +1;
return NULL;
}


int main() {
// array to keep Pthread IDs of created threads
pthread_t tid[NTHREADS];
int i;


printf("Counter starts at %d\n", counter);


// create and run the thread
for (i=0; i < nthreads;="">
pthread_create(&(tid[i]), NULL, thread, NULL);
}


//wait until all threads are done
for (i=0; i < nthreads;="">
pthread_join(tid[i], NULL);
}


printf("Counter ends at %d\n", counter);


return 0;
}



Jun 10, 2022
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here