前面文章介绍了Linux下进程的创建,管理,陆续介绍了进程间通信的方式:管道、内存映射、共享内存等。这篇文章继续介绍Linux的进程间通信方式消息队列
。
1. 消息队列介绍
消息队列通过名字字面意思理解就是队列排队-和平常超市买东西排队付款一样结构
,消息队列与FIFO很相似,都是一个队列结构,都可以有多个进程往队列里面写信息,多个进程从队列中读取信息。但FIFO需要读、写的两端事先都打开,才能够开始信息传递工作。而消息队列可以事先往队列中写信息,需要时再打开读取信息。
注意事项:
- 消息队列属于顺序队列形式的结构,向队列里写的每一条消息,会追加到队列后面,读取一个就从队列里消除一个。
- 写函数不会阻塞,除非队列里存放的消息数量已经满了,才会导致写阻塞。
- 读函数,从队列里读取不到数据时,会阻塞。
查看当前系统所有的消息队列: