2016-06-21 44 views
0

串口向公衆開放,線程始終與端口一起工作。 一個或多個高優先級的線程在運行時創建,並且沒有衝突,主線程應該與端口一起工作並在完成時銷燬。我如何安排這些線程並管理對串行端口的訪問?多線程C程序對串口的調度和訪問控制

謝謝。

回答

0

如果你正在創建許多線程,並且你總是希望只有一個線程能夠與串口一起工作(一次一個線程),你可以通過使用信號來管理它的訪問(這樣它們就不會發生衝突) 。

但是,您想要使用的調度算法完全取決於您的需要。當你創建多​​個線程時,我相信你必須使用pthread_create API,它有更多的靈活性來設置你的屬性(比如優先級)在它的第二個參數中。請使用該參數來設置優先級。您可以通過考慮其優先級來安排它們,或者甚至可以使用時間片技術。

分析你的問題時,看起來你正在開發板上工作。如果它是一個RTOS代碼,你可以嘗試實現搶佔機制和信號量。