[問題] pthread關於線程1條件成立時,加入線程2......

看板C_and_CPP (C/C++)作者 (ming_haoo)時間16年前 (2009/04/08 21:08), 編輯推噓0(0018)
留言18則, 4人參與, 最新討論串1/1
請問各位使用pthread的前輩, 最近想寫一段程式,但是一直沒辦法成功,希望有人能幫我解答一下。 內容如下: thread1:0累加到10000, thread2:10001累加到20000, thread3:20001累加到30000。 條件: 一開始thread1先執行,當thread1累加到1000時,thread2加入一起執行, 當thread1又累加到2000時,thread3加入一起執行。 提示提示一下><" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.125.35.123

04/08 21:14, , 1F
用event之類的把thread停住?
04/08 21:14, 1F

04/08 22:14, , 2F
可是我就是要讓他第一條THREAD永遠一直在執行
04/08 22:14, 2F

04/08 22:16, , 3F
就是指THREAD1累加到2000後,會有3條THREAD同時執行。
04/08 22:16, 3F

04/08 22:18, , 4F
先Create起來,但Suspend #2#3, 然後#1 event到再resume?
04/08 22:18, 4F

04/08 22:45, , 5F
可以的話~可以寫個小範例給我參考嗎><"因為我還是新手
04/08 22:45, 5F

04/10 02:08, , 6F
感覺滿簡單的,也不用用什麼event來做,用global var就可
04/10 02:08, 6F

04/10 02:10, , 7F
以了, 你把thread1~3先分別寫成三個function, 然後用一
04/10 02:10, 7F

04/10 02:11, , 8F
個 while(1) 或 for(;;) 的 loop 把三個function包起來,
04/10 02:11, 8F

04/10 02:12, , 9F
然後你會怎麼樣安排global var讓三個function依你的意思
04/10 02:12, 9F

04/10 02:13, , 10F
去跑咧? 我這提示夠明顯了吧! 好好動腦一下吧!
04/10 02:13, 10F

04/10 02:14, , 11F
以上只是提供你一個思路,真正的pthread部份run起來可能
04/10 02:14, 11F

04/10 02:16, , 12F
會有先後create/run的issue存在,不過如果你安排得當,倒
04/10 02:16, 12F

04/10 02:16, , 13F
是不會有什麼問題的! 加油!
04/10 02:16, 13F

04/10 11:47, , 14F
你說的方法,我之前就有試過,先把thread1的變數,宣告
04/10 11:47, 14F

04/10 11:48, , 15F
為全域變數,但是問題是,同樣的程式,我RUN個幾次,有時
04/10 11:48, 15F

04/10 11:49, , 16F
就會成功,有時會只有thread1在動。我看了一下他們還是會
04/10 11:49, 16F

04/10 11:50, , 17F
會進第2.3個function,但是那個全域變數就是拉進來的變數
04/10 11:50, 17F

04/10 11:52, , 18F
就是不會run,難道是你說的先後的問題嗎~"~
04/10 11:52, 18F
文章代碼(AID): #19tA70jx (C_and_CPP)
文章代碼(AID): #19tA70jx (C_and_CPP)