У меня есть задание для колледжа, и это код. Ниже это то, что мне нужно сделать / изменить в этом коде.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#include <pthread.h>
void *soma(void *valor){
int a = (intptr_t) valor;
a = 10 + a;
pthread_exit((void*)(intptr_t)a);
}
void *multiplicacao(void *valor){
int a = (intptr_t)valor;
a = 10 * a;
pthread_exit((void *)(intptr_t)a);
}
int main(){
pthread_t p, t;
int a = 5, b = 5;
int ra = pthread_create(&p,NULL,soma, (void *)(intptr_t)a);
int rb = pthread_create(&t,NULL,multiplicacao, (void *)(intptr_t)b);
printf("IDthread soma = %d\n", (int) p);
printf("IDthread multiplicacao = %d\n", (int) t);
printf("a = %d\n", a);
printf("b = %d\n", b);
exit(0);
}
Измените код так, чтобы (i) основной поток процесса ожидал выполнения потоков сразу после создания; (ii) после завершения обоих потоков переменная создается и инициализируется суммой значений переменных a и b, которые обновляются возвращаемыми значениями потоков, в которых они используются; (iii) выведите значение для стандартного вывода новой переменной. Представьте решение (код) найдено
PS: мне нужно использовать pthread_join, чтобы сделать это