作者minghaoo (ming_haoo)
看板C_and_CPP
標題[問題] pthread關於線程1條件成立時,加入線程2......
時間Wed Apr 8 21:08:15 2009
請問各位使用pthread的前輩,
最近想寫一段程式,但是一直沒辦法成功,希望有人能幫我解答一下。
內容如下:
thread1:0累加到10000,
thread2:10001累加到20000,
thread3:20001累加到30000。
條件:
一開始thread1先執行,當thread1累加到1000時,thread2加入一起執行,
當thread1又累加到2000時,thread3加入一起執行。
提示提示一下><"
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.125.35.123
1F:→ tsaiminghan:用event之類的把thread停住? 04/08 21:14
2F:→ minghaoo:可是我就是要讓他第一條THREAD永遠一直在執行 04/08 22:14
3F:→ minghaoo:就是指THREAD1累加到2000後,會有3條THREAD同時執行。 04/08 22:16
4F:→ VictorTom:先Create起來,但Suspend #2#3, 然後#1 event到再resume? 04/08 22:18
5F:→ minghaoo:可以的話~可以寫個小範例給我參考嗎><"因為我還是新手 04/08 22:45
6F:→ tomnelson:感覺滿簡單的,也不用用什麼event來做,用global var就可 04/10 02:08
7F:→ tomnelson:以了, 你把thread1~3先分別寫成三個function, 然後用一 04/10 02:10
8F:→ tomnelson:個 while(1) 或 for(;;) 的 loop 把三個function包起來, 04/10 02:11
9F:→ tomnelson:然後你會怎麼樣安排global var讓三個function依你的意思 04/10 02:12
10F:→ tomnelson:去跑咧? 我這提示夠明顯了吧! 好好動腦一下吧! 04/10 02:13
11F:→ tomnelson:以上只是提供你一個思路,真正的pthread部份run起來可能 04/10 02:14
12F:→ tomnelson:會有先後create/run的issue存在,不過如果你安排得當,倒 04/10 02:16
13F:→ tomnelson:是不會有什麼問題的! 加油! 04/10 02:16
14F:→ minghaoo:你說的方法,我之前就有試過,先把thread1的變數,宣告 04/10 11:47
15F:→ minghaoo:為全域變數,但是問題是,同樣的程式,我RUN個幾次,有時 04/10 11:48
16F:→ minghaoo:就會成功,有時會只有thread1在動。我看了一下他們還是會 04/10 11:49
17F:→ minghaoo:會進第2.3個function,但是那個全域變數就是拉進來的變數 04/10 11:50
18F:→ minghaoo:就是不會run,難道是你說的先後的問題嗎~"~ 04/10 11:52