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