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
)实现的。
这些用于防止无人看守的并发访问。
在多生产者-单一消费者设置中,在 message_queue[=19 上调用 send()
的生产者进程之间是否有内置的并发控制机制=]?
如果有多个消费者进程实例都在 message_queue 上调用 receive()
会怎样?
关于message_queue
是否是thread-safe的问题,答案是
message_queue
是根据 shared_memory_object
使用一些包含同步原语(如 interprocess_mutex
)的控制结构(ipcdetail::mq_hdr_t
)实现的。
这些用于防止无人看守的并发访问。