linux – POSIX消息队列 – mq_send线程唤醒命令
有人可以向我解释消息队列如何处理唤醒多个
线程在单个消息队列中被阻止? 我的情况是我有多个作者阻止完整的消息 我搜索了互联网的高低,以寻找描述如何的东西 我有一个小测试应用程序,如果有必要我可以在这里发布.它只是填充队列,然后有几个线程都尝试并写入它,所有线程优先级不同,并且发布的消息优先级等于线程优先级.然后我从队列中删除一条消息,并期望最高优先级的线程唤醒并发布其消息.但是,要等待的第一个线程首先发布其消息. 任何帮助或文档,任何人可以指出我,以便深入了解这个? 提前致谢! 解决方法
事实证明,如果队列已满,Linux内核会查看任务的优先级值,并以任务友好顺序将其添加到等待队列(这是非RT任务的优先级顺序).等待队列不符合我的应用程序使用的实时优先级.非RT优先级(漂亮的值)正在正确处理并以良好的顺序唤醒.
在将任务添加到内部内核等待队列时,我的问题的根本原因在于内核如何处理优先级.我向linux-kernel列表提交了一个补丁,该补丁已被接受,并将被用于未来的版本,这些版本在将任务添加到等待队列时更改了优先级检查 – 它现在既支持非RT优先级又支持RT优先级.它不处理截止日期计划任务的优先级. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |