boost::interprocess::message_queue中是否有内置的并发控制?

Is there a built-in concurrency control in boost::interprocess::message_queue?

在多生产者-单一消费者设置中,在 message_queue[=19 上调用 send() 的生产者进程之间是否有内置的并发控制机制=]?

如果有多个消费者进程实例都在 message_queue 上调用 receive() 会怎样?

关于message_queue是否是thread-safe的问题,答案是

message_queue 是根据 shared_memory_object 使用一些包含同步原语(如 interprocess_mutex)的控制结构(ipcdetail::mq_hdr_t)实现的。

这些用于防止无人看守的并发访问。