我正在從多個串行端口讀取數據。目前我正在使用自定義信號處理程序(通過設置sa_handler)根據文件描述符信息來比較和喚醒線程。我正在尋找一種解決方案,讓單個線程擁有獨特的信號處理程序,在這方面,我發現要使用選擇系統調用。在線程中選擇()系統調用?
現在我以下的問題:
- 如果我使用一個線程(QT),那麼我應該把選擇的系統調用監控的串行端口?
- 選擇系統調用線程安全嗎?
- 它是CPU密集型的,因爲我的應用程序中發生了很多事情,包括GUI更新?
請不要介意,如果您發現這些問題很荒謬。我從來沒有使用過這樣的串行通信機制。
Gud info!一個問題。線程如何知道它需要喚醒,如果套接字fd準備好進行讀/寫操作。內核是否給線程一些中斷? – 2013-05-19 18:20:20