[問題]關於pthread的wait的用法

看板LinuxDev作者 (狂想)時間18年前 (2007/04/13 11:16), 編輯推噓2(205)
留言7則, 4人參與, 最新討論串1/1
※ [本文轉錄自 C_and_CPP 看板] 作者: fantasywater (狂想) 看板: C_and_CPP 標題: [問題]關於pthread的wait的用法 時間: Fri Apr 13 10:52:29 2007 http://rafb.net/p/YODpk514.html 以上是我的程式碼 這個程式的目的是要我先用child thread算出數列並存在陣列中 然後parent thread再去那個陣列把答案印出來 我已經寫好了 但是執行的時候有時候會跑出答案 有時候不會 可是我覺得沒有寫錯 因為我已經使用pthread_join(child_pid,NULL)讓parent thread等待 child thread完成 再去陣列中把它印出來了 有時候好像不會執行parent_pid 請問我的作法錯了嗎 可否指正我錯在哪裡 編譯環境是gcc -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.249

04/13 11:06,
我知道了 因為我沒有join parent_pid 那可以解釋一下
04/13 11:06

04/13 11:07,
為何一定要join 我不是已經exit嗎 意義有何不同呢?
04/13 11:07
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.234

04/13 12:59, , 1F
你的parent有可能在child還沒計算完成就以先行印出..
04/13 12:59, 1F

04/14 00:32, , 2F
如同樓上所說, array shm 在 child thread (W) 與 parent
04/14 00:32, 2F

04/14 00:33, , 3F
thread (R) 中的存取是 race condition
04/14 00:33, 3F

04/14 00:34, , 4F
可以使用pthread_cond_signal()/pthread_cond_wait()解決
04/14 00:34, 4F

04/14 00:35, , 5F
或是display工作交給main thread,這樣可省parent thread
04/14 00:35, 5F

04/14 11:08, , 6F
謝謝
04/14 11:08, 6F

04/21 11:49, , 7F
請位樓主是否可以寄原始碼給我參考,我也有同樣的問題。
04/21 11:49, 7F
文章代碼(AID): #167lNxxZ (LinuxDev)
文章代碼(AID): #167lNxxZ (LinuxDev)