为了保证这种硬时序约束,您必须编写在任何情况下都不能阻止时间关键代码的代码.
此处不能使用posix线程同步原语.
您永远不能从时间关键代码中锁定互斥锁或aqurIE信号量,因为不同的进程/线程可能已将其锁定.但是,通常允许您从时间关键代码中解锁一些其他线程(例如,释放信号量是可以的).
在这样的环境中,消息队列是交换数据的不错选择,因为它们提供了一种干净的方式将数据从一个线程传递到另一个线程而不会阻塞.
使用队列来设置变量听起来有点矫枉过正,但这是非常好的软件设计.如果你这样做,你就有了一个明确定义的时间关键代码接口.
编写确定性代码也很有帮助,因为你永远不会遇到竞争条件问题.如果通过消息队列设置变量,则可以确保时间关键代码以与发送时相同的顺序查看消息.混合直接内存访问和消息时,您无法保证这一点.
总结以上是内存溢出为你收集整理的c – POSIX中正确的消息队列使用情况全部内容,希望文章能够帮你解决c – POSIX中正确的消息队列使用情况所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)