Очередь сообщений Posix - много писателей и много читателей - PullRequest
8 голосов
/ 22 октября 2011

Я в замешательстве по поводу очереди (POSIX). Нужно ли защищать несколько устройств записи в очередь или несколько устройств чтения из очереди?

несколько потоков будут записывать в очередь, а несколько потоков - из очереди.

Как говорится в определении "очередь сообщений может иметь много читателей и много писателей". Но это не говорит, нуждается ли это в защите или нет. эти два сообщения должны быть защищены мьютексом?

mq_send (mqd_t mqdes, const char * msg_ptr, size_t msg_len, unsigned msg_prio); mq_receive (mqd_t mqdes, char * msg_ptr, size_t msg_len, без знака * msg_prio);

Пожалуйста, кто-нибудь может мне помочь? Заранее спасибо.

1 Ответ

9 голосов
/ 22 октября 2011

Нет, вам не нужно защищать их мьютексом или чем-то подобным.Ядро позаботится об этом.

См. Раздел "ATTRIBUTES" на справочной странице mq_send онлайн ("Thread Safety" - "MT-Safe" ).

...