2016-06-21 42 views
0

串口向公众开放,线程始终与端口一起工作。 一个或多个高优先级的线程在运行时创建,并且没有冲突,主线程应该与端口一起工作并在完成时销毁。我如何安排这些线程并管理对串行端口的访问?多线程C程序对串口的调度和访问控制

谢谢。

回答

0

如果你正在创建许多线程,并且你总是希望只有一个线程能够与串口一起工作(一次一个线程),你可以通过使用信号来管理它的访问(这样它们就不会发生冲突) 。

但是,您想要使用的调度算法完全取决于您的需要。当你创建多​​个线程时,我相信你必须使用pthread_create API,它有更多的灵活性来设置你的属性(比如优先级)在它的第二个参数中。请使用该参数来设置优先级。您可以通过考虑其优先级来安排它们,或者甚至可以使用时间片技术。

分析你的问题时,看起来你正在开发板上工作。如果它是一个RTOS代码,你可以尝试实现抢占机制和信号量。