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

scheduling and access control to serial port in multi thread C program

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

谢谢。

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

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

在分析您的问题时,您似乎正在开发某个开发板上。如果是RTOS代码,你可以尝试实现抢占机制和信号量。