我知道 POSIX 消息队列不需要在不同进程之间进行同步。但是,如果在单个进程中被多个线程访问,它们的安全性如何呢?
我看到了这个问题:Does message queue support Multi-thread? 它与 SysV 消息队列相关,并且我认为 POSIX 至少具有相同的支持。它似乎暗示着它们是线程安全的,但是:
“任何在线程或进程之间共享的资源都可能受到竞争条件的影响。”
这表明仍然需要在进程内进行同步。
特别地,在我的情况下,使用消息队列通信的两个进程都实现了“boss-worker”模式,因此当工作线程尝试对消息队列执行操作时,可能会出现竞争条件。因此,我的假设是,在每个进程内访问这些队列仍然需要同步。
我看到了这个问题:Does message queue support Multi-thread? 它与 SysV 消息队列相关,并且我认为 POSIX 至少具有相同的支持。它似乎暗示着它们是线程安全的,但是:
“任何在线程或进程之间共享的资源都可能受到竞争条件的影响。”
这表明仍然需要在进程内进行同步。
特别地,在我的情况下,使用消息队列通信的两个进程都实现了“boss-worker”模式,因此当工作线程尝试对消息队列执行操作时,可能会出现竞争条件。因此,我的假设是,在每个进程内访问这些队列仍然需要同步。