[問題] 主程式讀取由執行緒寫入的值

看板C_and_CPP (C/C++)作者 (心誠則靈)時間15年前 (2010/11/07 12:11), 編輯推噓1(109)
留言10則, 6人參與, 最新討論串1/1
現有一主程式與一執行緒: 執行緒負責持續接收UDP封包並解碼,解碼出的數值將某全域變數更新。 主程式進行演算程序,在演算程序中會去讀取前述的全域變數。 遇到的問題:不知是否會有 執行緒程序中尚未完全寫入該全域變數 但主程式欲讀取該全域變數 之情形發生,而造成程式錯誤。 請問是否會有該問題發生的可能,該如何避免此種情況,謝謝!! 開發平台:VC wince平台 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.123.128.32

11/07 12:14, , 1F
使用Mutex或Semaphore之類的東西來防護
11/07 12:14, 1F

11/07 12:19, , 2F
用互鎖?
11/07 12:19, 2F

11/07 12:28, , 3F
請問是否有較簡易的方法,可能沒有時間再去學習上述的方法@@
11/07 12:28, 3F

11/07 12:29, , 4F
還是J大與S大說的方法並不難?! 因為完全沒有概念...
11/07 12:29, 4F

11/07 12:30, , 5F
應該是沒有其他比較簡單的方法了,除非你不用thread...
11/07 12:30, 5F

11/07 12:31, , 6F
其實不會很難 只是個簡單的概念
11/07 12:31, 6F

11/07 12:39, , 7F
原PO是接一個在CodeJop的一個電台廣波的CASE嗎??
11/07 12:39, 7F

11/07 13:37, , 8F
回S大~ 是啊,不過這個問題不屬於廣播電台的部分
11/07 13:37, 8F

11/07 14:12, , 9F
用mutex
11/07 14:12, 9F

11/07 18:28, , 10F
用 lock-free queue
11/07 18:28, 10F
文章代碼(AID): #1CrYS5DJ (C_and_CPP)
文章代碼(AID): #1CrYS5DJ (C_and_CPP)