作者bamboopole (竹竿)
看板Grad-ProbAsk
標題[理工] 106中山 資工 OS
時間Tue Jan 14 17:16:09 2020
請問為什麼答案是那樣
那個runner的程式看不太懂
https://i.imgur.com/zNiUg5a.jpg
https://i.imgur.com/Ng45V0B.jpg
-----
Sent from JPTT on my iPhone
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 58.115.170.41 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Grad-ProbAsk/M.1578993371.A.F9F.html
※ 編輯: bamboopole (58.115.170.41 臺灣), 01/14/2020 17:28:02
※ 編輯: bamboopole (58.115.170.41 臺灣), 01/14/2020 18:20:01
1F:推 mi981027: runner不用想太複雜 他就是把傳進來的值扣1而已 01/14 18:49
2F:→ mi981027: 用c寫pthread麻煩的點在呼叫thread要執行的函式時 需要 01/14 18:49
3F:→ mi981027: 送參數進去 設計上是呼叫pthread_create的同時傳參數進 01/14 18:50
4F:→ mi981027: 去 但c傳遞參數又必須指定好型別 所以在create這邊一律 01/14 18:50
5F:→ mi981027: 規定傳void指標進去 到函式內部再讓使用者自己轉型 如果 01/14 18:50
6F:→ mi981027: 有想要讓thread return什麼東西的話 也要用類似的手法 01/14 18:50
7F:→ mi981027: 另外要注意++v跟v++的差別 ++v是先更改值(先+1)再做其他 01/14 18:50
8F:→ mi981027: 操作 但v++是先做其他操作,最後才更改值 01/14 18:50
9F:→ mi981027: 對了還要小心print的順序 這邊每個parent都要wait後才會 01/14 18:51
10F:→ mi981027: print 所以順序是DCBA 01/14 18:51
11F:→ bamboopole: 感謝幫忙解答 01/14 19:33