[問題] C 語言檢查程式中記憶體是否改變的方法

看板C_and_CPP (C/C++)作者 (心動)時間12年前 (2013/11/08 14:19), 編輯推噓3(306)
留言9則, 4人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux gcc 問題(Question): 小弟有兩個 Global 變數 unsigned char a, b; 這兩個變數會在某個 thread 中被修改 在另一個 thread 中監視這兩個值 目前的寫法 while(1){ if(a != b){ //do someting } else { usleep(100); } } 感覺上不是什麼多好的方法, 想請問高手們是否有其他更好的做法? 感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.11.208.35 ※ 編輯: ck49 來自: 124.11.208.35 (11/08 14:19)

11/08 14:30, , 1F
有個東西叫 synchronization
11/08 14:30, 1F

11/08 15:27, , 2F
只查到 mutex lock,好像不太像我要的,可以多給一些提示嗎?
11/08 15:27, 2F

11/08 15:46, , 3F
比較好奇怎樣的設計要去讓 thread monitor a!=b 時做事情
11/08 15:46, 3F

11/08 21:49, , 4F
這寫法簡直是掛保證的 race condition XDDD
11/08 21:49, 4F

11/08 21:51, , 5F
if block 裡面是 critical section 嗎?
11/08 21:51, 5F

11/08 22:02, , 6F
讀取a和b之前也應該取得 lock
11/08 22:02, 6F

11/09 00:05, , 7F
請問你使用的OS是那一個?
11/09 00:05, 7F

11/09 09:16, , 8F
OS 是 Linux
11/09 09:16, 8F

11/09 19:39, , 9F
可以使用condition,pthread_cond_wait
11/09 19:39, 9F
文章代碼(AID): #1IV89Ye5 (C_and_CPP)
文章代碼(AID): #1IV89Ye5 (C_and_CPP)