看板 LinuxDev 關於我們 聯絡資訊
※ [本文轉錄自 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
fantasywater:我知道了 因為我沒有join parent_pid 那可以解釋一下 04/13 11:06
fantasywater:為何一定要join 我不是已經exit嗎 意義有何不同呢? 04/13 11:07
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.234
CriLit:你的parent有可能在child還沒計算完成就以先行印出.. 04/13 12:59
yhuiyang:如同樓上所說, array shm 在 child thread (W) 與 parent 04/14 00:32
yhuiyang:thread (R) 中的存取是 race condition 04/14 00:33
yhuiyang:可以使用pthread_cond_signal()/pthread_cond_wait()解決 04/14 00:34
yhuiyang:或是display工作交給main thread,這樣可省parent thread 04/14 00:35
fantasywater:謝謝 04/14 11:08
minghaoo:請位樓主是否可以寄原始碼給我參考,我也有同樣的問題。 04/21 11:49