多线程C程序中对串口的调度和访问控制

时间:2016-06-21 09:24:48

标签: c multithreading serial-port

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

感谢。

1 个答案:

答案 0 :(得分:0)

如果您要创建多个线程并且您始终只希望一个线程使用串行端口(一次一个线程),您可以通过使用信号量管理它的访问权限(这样他们就可以不碰撞)。

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

在分析您的问题时,您似乎正在开发一些开发板。如果它是RTOS代码,您可以尝试实现抢占机制以及信号量。