Для чего Вы использовали sysv/posix очереди сообщений?

Я никогда не видел проекта или чего-нибудь использующего posix или sysv очередей сообщений - и являющийся любопытным, какие проблемы или проекты имеют Вас, парни использовали их для?

8
задан leeeroy 28 February 2010 в 16:56
поделиться

2 ответа

Однажды я написал утилиту-генератор ввода-вывода в текстовом режиме, в которой один поток отвечал за обновление пользовательского интерфейса, а несколько рабочих потоков выполняли фактические Ввод / вывод работает. Когда рабочий поток завершил ввод-вывод, он отправил сообщение об обновлении в поток пользовательского интерфейса. Я реализовал эту систему сообщений, используя очередь сообщений POSIX.

Зачем это реализовывать так? В то время это казалось хорошей идеей, и мне было любопытно, как они работают. Я решил, что смогу решить проблему и в то же время чему-то научиться. Я мог бы использовать множество различных техник, и я не думаю, что была какая-то серьезная причина, по которой я выбрал эту технику. Я осознал это позже, но я был рад, что использовал очередь POSIX, когда мне пришлось переносить утилиту в другую систему (она также была совместима с POSIX, поэтому мне не пришлось беспокоиться о переносе внешних библиотек, чтобы получить мои приложение для запуска).

1
ответ дан 6 December 2019 в 00:06
поделиться

У меня был ряд команд, которые нужно было выполнить по порядку, но основной поток программы не зависел от их завершения, поэтому я поставил их в очередь и передал другому процессу через очередь сообщений System V, чтобы они выполнялись независимо от основная программа. Поскольку очереди сообщений обеспечивают асинхронный протокол связи, они хорошо подходят для этой задачи.

Честно говоря, я использовал очереди сообщений System V, потому что я никогда не использовал их раньше, и я хотел. Я уверен, что я мог бы использовать и другие методы IPC.


Я давно не занимался программированием VxWorks, но вы также можете найти очереди сообщений, используемые в приложениях VxWorks. Согласно Руководству программиста приложений VxWorks (поиск Google), основным механизмом межзадачного взаимодействия в пределах одного ЦП являются очереди сообщений . VxWorks использует две библиотеки подпрограмм очереди сообщений (POSIX и VxWorks).

2
ответ дан 6 December 2019 в 00:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: