看板 Grad-ProbAsk 關於我們 聯絡資訊
https://i.imgur.com/0JQtcoA.jpg 想請問31題的第二小題(正確答案選B) 為什麼算出來是3,小a 不是全域變數嗎? 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.171.66.123 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1512832091.A.C3E.html ※ 編輯: etesia329 (118.171.66.123), 12/09/2017 23:09:25
bighb69738: 如果你的a 宣告在 fork 之前 fork 會有 a這個變數嗎?12/09 23:31
bighb69738: fork 的生命週期應該在 fork的那一段開始才跟父有關聯12/09 23:33
bighb69738: 若這樣 a++ 只在main 中執行3次12/09 23:34
https://i.imgur.com/qvJ65v6.jpg 剛剛想了一下,不是應該像這樣的寫法才是各自更新value嗎 這樣的寫法跟與原文那題會是一樣的意思嗎 謝謝 ※ 編輯: etesia329 (118.171.66.123), 12/10/2017 00:12:41
TMDTMD2487: 這不是thread 而是fork 用出來的就是一個process的cop12/10 00:15
TMDTMD2487: y12/10 00:15
TMDTMD2487: 不管你local還global他都是一個個獨立的process12/10 00:15
懂了!感謝兩位的解說 ※ 編輯: etesia329 (118.171.66.123), 12/10/2017 00:19:20
bighb69738: 你的那張圖 跟 原題 不一樣 你的print 在那個if 條件12/10 00:17
bighb69738: 式裡12/10 00:17
TMDTMD2487: value是是父的global 而fork出來的是另一個process也12/10 00:20
TMDTMD2487: 有value也是global但他是child process的global12/10 00:20
TMDTMD2487: 如果你是if這部分不懂 你可以參考這個 #1Q1MWncd (Gra12/10 00:21
TMDTMD2487: d-ProbAsk)12/10 00:21
TMDTMD2487: #1Q1MWncd (Grad-ProbAsk)12/10 00:21
TMDTMD2487: 我是很直覺的覺得你把create thread跟fork搞混了@@12/10 00:23
if的部分ok 謝謝T大解說! 確實是搞混鬼打牆XD ※ 編輯: etesia329 (118.171.66.123), 12/10/2017 00:26:28
alan23273850: 關鍵字:copy on write (COW) 12/10 11:23