[理工] 108交大計系5

作者: waes81224 (waes81224)   2020-10-26 00:17:33
題目如下
答案是A
https://i.imgur.com/KtILUJo.jpg
1. 想請問這題程式碼中的a是屬於global variable,當child process經由fork行程後,也
會共享同一個a。fork之後接下去執行時,應該會因為parent preocess與child process執
行順序的不同而造成a值有不同的可能對吧(race condiction發生)?
2. 我把程式碼拿去執行,卻都是4 3 3 2 2 1這個順序,而沒有上述的情形發生,想請問為
什麼呢?
這個想法影響到我對於 (a) 跟(b)的選擇,感謝大家。
作者: willy3570 (Lipper0703)   2020-10-26 01:01:00
fork會copy一份parent的資料給child,因此child有自己的一份資料來自於parent的copy,所以變數不是共享的,child更改a的內容也不會影響到parent。

Links booklink

Contact Us: admin [ a t ] ucptt.com