作者waes81224 (changchang)
看板Grad-ProbAsk
标题[理工] 108交大计系5
时间Mon Oct 26 00:17:33 2020
题目如下
答案是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)的选择,感谢大家。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 119.77.140.137 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1603642655.A.FE6.html
※ 编辑: waes81224 (119.77.140.137 台湾), 10/26/2020 00:35:12
1F:推 willy3570: fork会copy一份parent的资料给child,因此child有自己10/26 01:01
2F:→ willy3570: 的一份资料来自於parent的copy,所以变数不是共享的,c10/26 01:01
3F:→ willy3570: hild更改a的内容也不会影响到parent。 10/26 01:01
感谢大大!!我懂了 variable a 要写在 main()外面才会有共享变数大问题发生。
※ 编辑: waes81224 (119.77.140.137 台湾), 10/26/2020 12:35:18