[問題] 多執行緒的問題

看板C_and_CPP (C/C++)作者 (kidd)時間15年前 (2011/04/22 22:00), 編輯推噓0(0017)
留言17則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C++ 問題(Question): 沒有照預期的跑... 預期的正確結果(Expected Output): aaaaaaaaaa(待10個a之後)a_a_a_a_....... 錯誤結果(Wrong Output): aaaaaaaaaaaaaaaaaaaaaaaaaaa..... 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/MckWpN0B 補充說明(Supplement): 謝謝:D 這的確是個辦法 但是如果真的想讓他就算一開始條件不滿足還是可以存活著有辦法嗎? 因為我需要修改的程式可能會需要這種方式會比較順利... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 121.254.64.48

04/22 22:03, , 1F
你的排版跟變數命令還真是隨性...
04/22 22:03, 1F

04/22 22:03, , 2F
另外,為什麼你覺得會是 a_a_a_a_ 這樣的結果呢?
04/22 22:03, 2F
※ 編輯: p7869 來自: 121.254.64.48 (04/22 22:11) ※ 編輯: p7869 來自: 121.254.64.48 (04/22 22:12)

04/22 22:12, , 3F
你的 () 裡講到重點了,因為你的 repeat 一開始是 false
04/22 22:12, 3F
※ 編輯: p7869 來自: 121.254.64.48 (04/22 22:12)

04/22 22:12, , 4F
所以 loop_fun 生出來之後就馬上結束了
04/22 22:12, 4F

04/22 22:13, , 5F
那請問有辦法讓他可以繼續等待條件滿足嗎?
04/22 22:13, 5F

04/22 22:15, , 6F
換一個想法:你可以在 a() 印完十個後再啟動 loop_fun
04/22 22:15, 6F

04/22 22:16, , 7F
對了,你的 aa 目前永遠都是 true, 所以 a() 不會結束
04/22 22:16, 7F

04/22 22:17, , 8F
目前你的 CheckKey 並不會執行
04/22 22:17, 8F
※ 編輯: p7869 來自: 121.254.64.48 (04/22 22:20)

04/22 22:21, , 9F
嗯嗯 順序應該把他調到最下面比較適當
04/22 22:21, 9F
※ 編輯: p7869 來自: 121.254.64.48 (04/22 22:23)

04/22 22:23, , 10F
對了,我想提醒你,兩個執行緒並不保證會「交替」執行
04/22 22:23, 10F

04/22 22:23, , 11F
因此你的程式是不可能印出 a_a_a_a_a_ 的
04/22 22:23, 11F

04/22 22:26, , 12F
那真的麻煩了0.0 謝謝,我再尋找其他辦法
04/22 22:26, 12F

04/22 22:29, , 13F
http://pastie.org/1822581 你可以先看看這個程式
04/22 22:29, 13F

04/22 22:31, , 14F
應該頒個「世紀好人賞」給你的才對....
04/22 22:31, 14F

04/22 22:35, , 15F
板主比較辛苦吧,我都是看心情回答而已 XD
04/22 22:35, 15F

04/22 22:46, , 16F
這個是..蠻有趣的:D 非常感激! 我研讀一下
04/22 22:46, 16F

04/22 22:56, , 17F
好像關鍵在於不可以讓他結束生命我改改我的邏輯試試,謝謝你
04/22 22:56, 17F
文章代碼(AID): #1DiOeCsX (C_and_CPP)
文章代碼(AID): #1DiOeCsX (C_and_CPP)