Как изменить код так, чтобы оба потока продолжали печатать одну и ту же строку, чтобы терминал отображал чередующиеся символы «A» и «B» - PullRequest
0 голосов
/ 14 февраля 2020

Вот код, который у меня есть на данный момент:

#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>

int value = 0;
void *runner(void *param);
int main(){
    int pid;
    pthread_t tid;
    pthread_attr_t attr;
    pid = fork();

    if (pid == 0) {
      pthread_attr_init(&attr);
      pthread_create(&tid,&attr,runner,NULL);
      pthread_join(tid,NULL);
      printf("A: value = %d\n", value);
    }

    else if (pid > 0) {
     wait(NULL);
     printf("B: value = %d\n", value);
    }
}

void *runner(void *param){
    value = 5;
    pthread_exit(0);
}

Я определил дочерний и родительский процессы, но я не уверен, как сделать чередование печати A и B.

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