Я написал этот код, и мне нужно знать, есть ли проблема с синхронизацией при обновлении значения переменной? - PullRequest
0 голосов
/ 27 марта 2020
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>

int value = 10;

int main()
{
    pid_t pid;
    pid = fork();
    if (pid == 0)
    {
        value = value + 100;
    }
    else if (pid > 0)
    {
        value = value - 100;
        printf("PARENT: value = %d \n", value); //Line A
        wait(NULL);
    }
}

Я написал этот код и должен знать, есть ли проблема с синхронизацией при обновлении значения переменной

1 Ответ

3 голосов
/ 27 марта 2020

Когда вы выполняете fork, parent и child - два разных процесса, value parent и value child - это два разных экземпляра, изменение одного из них не влияет на другой, поэтому мы не можем говорить о синхронизации в этот случай.

Что касается самих процессов, то существует определенная степень синхронизации, поскольку родительский процесс ждет дочернего процесса, прежде чем продолжить.

Вы пропустили #include <sys/wait.h>.

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