Re: [問題] Timer、Thread

看板Programming作者 (突然覺得自己是孤獨的...)時間15年前 (2010/03/11 00:13), 編輯推噓2(205)
留言7則, 1人參與, 最新討論串2/4 (看更多)
※ 引述《clarkman (涼雨)》之銘言: : 我在已經吃掉許多資源的程式下,想要定期接收RS232的資料 : 3. 多線程timer : 有查到.net有個system.threading.timer,但是程式是mfc,卻無法使用 : 很頭痛,不知道大家在處理上面有什麼更好得方法嗎? : 有人建議過使用mutli-process,不過又怕os不斷的搬資料,反而更慢 : 謝謝 給你幾個hint, 1. 建議除了UI外, 額外用4個thread處理 2個是自己寫的timer, 2個是專門處理資料的 2. timer建議用64bits的HPET 3. 專門處理資料的thread, 最好有buffer timer一把RS232資料抓到後, 立刻就丟給別的thread進行資料處理 而timer的程序也就進入睡眠狀態, 直到時間事件再次被觸發 4. 同步的問題 --> 緩衝區應該要加上Single Lock , 但能鎖住的時間僅是資料存取的極短時間內, 運算應該要跟存取分開 不能在運算時也鎖住緩衝區 5. 資料處理完應該先檢查緩衝區是否還有資料, 如果有, 應該要繼續處理 如果沒有, 則進入睡眠, 直到再次被喚起 P.S. 提示已經很多了, 自己查資料, 就別寫信來問了 XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.1.131

03/14 02:35, , 1F
所以是一個負責收資料,一個負責處理資料
03/14 02:35, 1F

03/14 02:35, , 2F
把這兩個拆開給不同的thread嗎
03/14 02:35, 2F

03/14 02:37, , 3F
但是我們的機台已經跑了很吃資源的遊戲
03/14 02:37, 3F

03/14 02:37, , 4F
所以會把底層這個東西搶走太多,導致太慢
03/14 02:37, 4F

03/14 02:38, , 5F
多拉幾條thread會怕context switch更慢
03/14 02:38, 5F

03/14 02:49, , 6F
因為我們的機台等級不高,加上資源吃太多
03/14 02:49, 6F

03/14 02:49, , 7F
所以才會擔心
03/14 02:49, 7F
文章代碼(AID): #1BbyKc6G (Programming)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 4 篇):
文章代碼(AID): #1BbyKc6G (Programming)