[理工] 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