看板 C_and_CPP 關於我們 聯絡資訊
http://codepad.org/OwWHG4oe <---- Code 我的目的是想要以muti thread讀檔將檔案內一定格式的資料 (分成id 及數值) 讀出 然後我叫了兩個thread出來 因為幾乎整個thread裡在讀檔時用到的東西都是thread間需要共用的 所以一開始就用mutex 鎖起來 可是這樣執行時常常會有某一段變成 數值跟id存進的位子反了 (id存到struct裡的value) (因為我把thread跑完以後的資料print出來一個一個檢查一遍) 就覺得很奇怪 剛好我在thread裡每從檔案裡讀完一筆資料就會提示一次做完 然後把已經讀取的次數加一 結果延著大筆資料print出來的結果算一算 數值跟id反了的位子剛好就是thread 1 讀完檔 換到thread2 讀檔完以後就反過來 我猜應該是在檔案指標讀的時候thread被切換 可是我mutex在thread的while裡第一行就lock起來了 結果還是沒辦法@@ 想請問一下問題出在哪 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.221.161
linotwo:while 的條件判斷裡的 fscanf(...) 沒有鎖起來 11/09 07:46