全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2445
推到 Plurk!
推到 Facebook!

執行緒與中斷Timer的問題(關於優先權)

缺席
genkigon
一般會員


發表:2
回覆:0
積分:0
註冊:2007-08-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-08-13 17:48:27 IP:140.131.xxx.xxx 訂閱
在下是BCB的新手...大約剛學...但是時間有點點趕,所以決定請教前輩們,看看能否得到解答。

在下用執行緒做接收的動作,將接收的資料顯示。這部份沒問題,單純的接收。

中斷timer部份做資料的傳送,當同時啟動時(執行緒和中斷),原本500ms中斷應該要反應一次的,可是偶而會發生慢或快的反應。

就在下的了解,執行緒是一直在動作,唯中斷是設定值到了動作一次,所以在下想知道的是中斷和執行緒倒底誰的優先權較高

另,若開了2個以上的執行緒時,要是遇到同個時間到時,會先做誰,還是就當機?

另,若開了2個以上的中斷,優先權如何知道,可以自己決定嗎?可以由何處更改?


因為有用到硬體(USB),所以收送資料對在下蠻重要的,那在下對中斷這部份雖然翻了書...但也沒有得到答案,是故請教各位前輩看看,感謝各位了!
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-08-15 01:07:20 IP:61.64.xxx.xxx 訂閱
Timer 叫計時器,計時器有普通計時器與高精度計時器

中斷叫 int,需要使用組合語言控制

同一程序的執行緒本身就有順序,同時執行緒可以設定優先順序,查 Windows API 關鍵字 priority

最後 PC 本來就是一台依次序執行的機器,此種 Time-Sharing Machine 本來就無法做到「絕對」的「計時」
所以沒有所謂同時時間到這件事,不可能發生,只是看起來同時到,實際上還是有很微小的誤差,你感覺不出來而已

如果你要做到決絕對精準,請考慮使用 real-time system

不然就好好思考,你的程式的用途與容許的誤差,再決定使用的元件,以及非預期狀況的解決方式

===================引 用 genkigon 文 章===================
在下是BCB的新手...大約剛學...但是時間有點點趕,所以決定請教前輩們,看看能否得到解答。

在下用執行緒做接收的動作,將接收的資料顯示。這部份沒問題,單純的接收。

中斷timer部份做資料的傳送,當同時啟動時(執行緒和中斷),原本500ms中斷應該要反應一次的,可是偶而會發生慢或快的反應。

就在下的了解,執行緒是一直在動作,唯中斷是設定值到了動作一次,所以在下想知道的是中斷和執行緒倒底誰的優先權較高

另,若開了2個以上的執行緒時,要是遇到同個時間到時,會先做誰,還是就當機?

另,若開了2個以上的中斷,優先權如何知道,可以自己決定嗎?可以由何處更改?


因為有用到硬體(USB),所以收送資料對在下蠻重要的,那在下對中斷這部份雖然翻了書...但也沒有得到答案,是故請教各位前輩看看,感謝各位了!
系統時間:2024-05-02 20:06:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!