Как изменить код с помощью pthread_join - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть задание для колледжа, и это код. Ниже это то, что мне нужно сделать / изменить в этом коде.

#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, чтобы сделать это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...