作者XXaa (廢文小神童)
看板C_and_CPP
標題[問題] pthread同步問題
時間Wed Jan 23 19:15:26 2013
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Linux G++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
pthread
問題(Question):
小弟目前在寫一支平行程式
想做的內容是
生出k條thread id從0~k-1
由id為0的thread負責準備資料 其它thread先wait(1)
等id 0資料準備好以後 在把其它thread叫醒執行
等其它thread都執行完然後都去wait以後(2)
id 0在準備下一輪資料
(1)的部分似乎可以用pthread_cond_wait讓其他thread等待
等id 0準備好後在用pthread_cond_broadcast把它們叫醒
但是(2)的部分
id 0要怎麼知道其他人都已經做完了
因為他要等大家都做完才能準備下一階段
請大家給小弟一點意見
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.109.16.164
→ legnaleurc:其他人做完跟 t0 講 01/23 19:32
推 IrisXIII:可以看看 pthread_barrier_wait 01/23 19:43
推 wirelessr:方便一點的做法是pthread_setspecific 設共用變數 01/23 23:02
→ wirelessr:做完的thread就把它+1 加到k-1就是都做完了 01/23 23:03
→ XXaa:謝謝各位的建議:) 01/25 10:55