[理工] 106中山 資工 OS

看板Grad-ProbAsk作者 (竹竿)時間6年前 (2020/01/14 17:16), 6年前編輯推噓1(1010)
留言11則, 2人參與, 6年前最新討論串1/1
請問為什麼答案是那樣 那個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://www.ptt.cc/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

01/14 18:49, 6年前 , 1F
runner不用想太複雜 他就是把傳進來的值扣1而已
01/14 18:49, 1F

01/14 18:49, 6年前 , 2F
用c寫pthread麻煩的點在呼叫thread要執行的函式時 需要
01/14 18:49, 2F

01/14 18:50, 6年前 , 3F
送參數進去 設計上是呼叫pthread_create的同時傳參數進
01/14 18:50, 3F

01/14 18:50, 6年前 , 4F
去 但c傳遞參數又必須指定好型別 所以在create這邊一律
01/14 18:50, 4F

01/14 18:50, 6年前 , 5F
規定傳void指標進去 到函式內部再讓使用者自己轉型 如果
01/14 18:50, 5F

01/14 18:50, 6年前 , 6F
有想要讓thread return什麼東西的話 也要用類似的手法
01/14 18:50, 6F

01/14 18:50, 6年前 , 7F
另外要注意++v跟v++的差別 ++v是先更改值(先+1)再做其他
01/14 18:50, 7F

01/14 18:50, 6年前 , 8F
操作 但v++是先做其他操作,最後才更改值
01/14 18:50, 8F

01/14 18:51, 6年前 , 9F
對了還要小心print的順序 這邊每個parent都要wait後才會
01/14 18:51, 9F

01/14 18:51, 6年前 , 10F
print 所以順序是DCBA
01/14 18:51, 10F

01/14 19:33, 6年前 , 11F
感謝幫忙解答
01/14 19:33, 11F
文章代碼(AID): #1U7ORR-V (Grad-ProbAsk)