[問題] 關於pthread的問題

看板C_and_CPP (C/C++)作者 (ROCMew)時間15年前 (2011/05/04 20:36), 編輯推噓2(2010)
留言12則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) <pthread.h> 問題(Question): 問題是出在當 thread 0 分 1, 2,然後2在分 3 4後,3 4可以成功join, 但是在0要join 1 2的時候發生錯誤。 也可以看成tree最末端的上一層被join時候會錯誤。 pthread_exit() 那部份,gdb會出現 Error accessing memory address 餵入的資料(Input): map2.txt : http://pastie.org/private/4jshbqlirhe6nyclzdhca 預期的正確結果(Expected Output): 不會當... 錯誤結果(Wrong Output): join ERROR,或是 exit 時錯誤 程式碼(Code):(請善用置底文網頁, 記得排版) code: http://pastie.org/private/hbg87adobrnhlldgxarjxq 補充說明(Supplement): 程式是一個走迷宮的程式,當遇到叉路就分出子thread繼續走,然後再叉路口等, 子thread遇到死路時就回報到上一層,然後由上一層反著印出走過的路。 小弟剛接觸pthread,改了很多天也不知道哪裡錯...為什麼會錯也是一頭霧水... 希望大家能幫我解決這個問題~謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.138.224.111

05/04 20:37, , 1F
補充說一下,如果只分出1層是可以成功結束,但是分出第2
05/04 20:37, 1F

05/04 20:37, , 2F
層後,就會出問題
05/04 20:37, 2F

05/04 21:21, , 3F
你join那個while沒有j++, 重覆join
05/04 21:21, 3F

05/04 21:34, , 4F
謝謝~~~~~~~好像真的可以
05/04 21:34, 4F

05/04 21:34, , 5F
不過我有在下面寫下面死路寫j++呀,為什麼把j++提到上
05/04 21:34, 5F

05/04 21:35, , 6F
面就可以了呢?! 好奇怪
05/04 21:35, 6F

05/04 21:39, , 7F
難道是時間差的關係?!>_<
05/04 21:39, 7F

05/04 21:46, , 8F
跟時間無關..你沒handle非1與0的case
05/04 21:46, 8F

05/04 21:59, , 9F
喔喔~原來是這樣阿 謝謝^ ^
05/04 21:59, 9F

05/04 22:02, , 10F
阿~我知道為什麼了....
05/04 22:02, 10F

05/04 22:03, , 11F
create thread的時候,他是0 >O<
05/04 22:03, 11F

05/04 22:05, , 12F
哈哈...竟然沒想到這種情況
05/04 22:05, 12F
文章代碼(AID): #1DmKXHNL (C_and_CPP)
文章代碼(AID): #1DmKXHNL (C_and_CPP)