#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);
    }
}

मैंने यह कोड लिखा है और यह जानने की जरूरत है कि क्या वैरिएबल वैल्यू को अपडेट करने में सिंक्रोनाइज़ेशन समस्या है

-2
Rashmika gamage 27 मार्च 2020, 17:14

1 उत्तर

सबसे बढ़िया उत्तर

जैसा कि आप कांटा, माता-पिता और बच्चे दो अलग-अलग प्रक्रियाएं हैं, माता-पिता के value और बच्चे के value दो अलग-अलग उदाहरण हैं, उनमें से एक को बदलना दूसरे को प्रभावित नहीं करता है, हम वास्तव में सिंक्रनाइज़ेशन के बारे में बात नहीं कर सकते हैं इस मामले में।

जहाँ तक प्रक्रियाओं का सवाल है, वहाँ सिंक्रनाइज़ेशन की एक डिग्री होती है क्योंकि मूल प्रक्रिया जारी रखने से पहले बच्चे की प्रक्रिया की प्रतीक्षा करती है।

आप #include <sys/wait.h> गायब हैं।

3
anastaciu 27 मार्च 2020, 15:24