[理工] OS 共享变量

楼主: sooge (老衲)   2019-02-19 15:23:15
大家好 小弟我想问一个超级基本的问题
请问这个共享变量的值到底要怎么看?
一直以来都没真正弄懂它
https://i.imgur.com/QzvuWlV.jpg
请问为什么没有5,4和5,6 还有为什么有6,6和4,4
那个printf是可以不用父和子都要执行完就能印了吗
常常看到说共享value+-完的值还没asign回去 另外一个process又把value做+-才会造成
值不一样,请问assign回去是assign到哪里去
是类似把value更新回云端再给别人取下来的概念吗
还有就是6,6和4,4是怎么来的
6,6和4,4都是父或子其中一个没执行到才有的结果吧? 求解 抱歉问的超基本
作者: eric131204 (暗女巫)   2019-02-19 15:35:00
先各自+1-1 然后父assign 子再assign 就是6,6
楼主: sooge (老衲)   2019-02-19 15:39:00
我确认一下 assign过后是不是两个值必会一样很像不对....这样父assign两个都变4,4了
作者: seika555 (kakkoii)   2019-02-19 15:46:00
https://i.imgur.com/ZaGKVt8.jpg把他拆开看比较好看 有错请指正5 4那个就自己画画看,应该画不太出来,因为中间就有一个人要先print了
作者: eric131204 (暗女巫)   2019-02-19 15:51:00
共享变量assign完会一样啊 只是看谁最后assign而已
楼主: sooge (老衲)   2019-02-19 15:57:00
哦懂了! 谢谢楼上两位大大的回答 感激不尽
作者: TWkobe (中华柯比)   2019-02-19 16:55:00
你要记得多process抢变量 没有保护会不知道谁先取得谁先写回 所以才有多答案
楼主: sooge (老衲)   2019-02-19 17:38:00
好的 谢谢台湾kobe

Links booklink

Contact Us: admin [ a t ] ucptt.com