[理工] OS thread的追蹤

看板Grad-ProbAsk作者 (還很新)時間7年前 (2017/01/15 20:30), 7年前編輯推噓0(008)
留言8則, 2人參與, 最新討論串1/1
http://i.imgur.com/sO2aIKP.jpg
想問這題race condition的原因是因為沒有對value值做互斥嗎 想順便問一下那個sleep(2)這個函式中的(2)是什麼意思? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.240.11.166 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1484483420.A.0E7.html

01/15 20:37, , 1F
1.是 2.暫停2秒
01/15 20:37, 1F
單位是秒?我以為是機器週期之類的... ※ 編輯: newpuma (42.72.116.49), 01/15/2017 21:52:23

01/15 21:53, , 2F
是秒沒錯喔,相似的還有usleep單位是microsecond
01/15 21:53, 2F

01/15 21:54, , 3F
nanosleep單位是nanosecond,不過這些其實都不是完全
01/15 21:54, 3F

01/15 21:54, , 4F
精確的,就是接近這個數值這樣,跟題目無關,扯遠了...
01/15 21:54, 4F
XD 可是有沒有可能thread已經sleep完 然後assigned回去,下一個thread才進去使用到v alue? ※ 編輯: newpuma (42.72.116.49), 01/15/2017 22:00:39

01/15 22:03, , 5F
是有可能的,所以題目給了一個條件是:with a very
01/15 22:03, 5F

01/15 22:04, , 6F
light load,提示你只要考慮這兩個thread就好,當tid1
01/15 22:04, 6F

01/15 22:05, , 7F
去sleep的時候CPU就沒其他事情做了,有極極高的機率會
01/15 22:05, 7F

01/15 22:05, , 8F
把tid2拿來執行
01/15 22:05, 8F
文章代碼(AID): #1OUsjS3d (Grad-ProbAsk)