【发布时间】:2013-09-09 04:23:43
【问题描述】:
我有一个场景:
1:有一个reader进程和一个writer进程,这些进程通过SysV消息队列进行通信。
2:Writer进程比Reader进程快,即Writer进程在队列中写入消息比Reader进程读取消息并清空队列要快,例如如果我队列中有8条消息(单个消息队列)并且读取器进程当时尚未读取一条消息,写入器进程试图写入(msgsnd)队列中的第 9 条消息。
3:我的任何消息都会被覆盖会怎样?
4:或者我在队列中的最后一条或第一条消息将被覆盖?
5: 还是整个队列都会被覆盖?
6:否则第 9 条消息会丢失?
7:如何确保这些情况都不会发生,并且不会丢失任何新的传入消息并且不会覆盖现有消息?
8:我该如何处理这种情况?
问候
【问题讨论】:
标签: linux multithreading process message-queue sysv