Write a multi-thread program to handle two matrices, A and B. Randomly generate the content of matrix A and B withi spec
Posted: Fri Jul 08, 2022 6:38 am
void *calculate_average(void *param); void *calculate maximum(void *param); void *calculate_minimum(void *param); int main(int argc, char "argv[]) { int i; int num_of_args = argc-1; pthread_t tid_1; pthread_t tid_2; pthread_t tid_3; /* allocate memory to hold array of integers */ list = malloc(sizeof(int) num_of_args); for (i = 0; i < num_of_args; i++) list = atoi(argv[i+1]); /* create the threads "/ pthread_create(&tid_1, pthread_create(&tid_2, 0, calculate_average, &num_of_args); 0, calculate_maximum, &num_of_args); pthread_create(&tid_3, 0, calculate_minimum, &num_of_args); /* wait for the threads to exit */ pthread_join(tid_1, NULL); pthread_join(tid_2, NULL); pthread_join(tid_3, NULL); printf("The average is %f\n", average); printf("The maximum is %d\n", maximum); printf("The minimum is %d\n", minimum); return 0; } void *calculate_average(void *param) { int count = "(int *)param;
S int count= "(int *)param; int i, total = 0; printf("count=%d\n",count); for (i = 0; i < count; i++) printf("%d\n",list); for (i = 0; i < count; i++) total += list: average = total / count; pthread_exit(0); } void 'calculate maximum(void *param) { int count = "(int *)param; int i; maximum list[0]; for (i = 1; i < count; i++) if (list> maximum) maximum = list; pthread_exit(0); E } void "calculate_minimum(void "param) { int count(int *)param; int i; minimum list[0]; for (i=1;i< count; i++) if (list< minimum) minimum = list; = Ma
pthread_exit(0); } void *calculate_maximum(void *param) int count = "(int *)param; int i; maximum = list[0]; for (i = 1; i < count; i++) if (list> maximum) maximum = list; pthread_exit(0); } void *calculate_minimum(void *param) { int count = *(int *)param; int i; minimum list[0]; for (i = 1; i < count; i++) if (list < minimum) minimum = list[i]; pthread_exit(0); = } Also available here: https://replit.com/@zhumi/Multithread-Statistics#main.c