读书人

linux基础编程 讯息队列 msgsnd

发布时间: 2012-08-16 12:02:15 作者: rapoo

linux基础编程 消息队列 msgsnd
实际上,消息队列常常保存在链表结构中。拥有权限的进程可以向消息队列中写入或读取消息。

消息队列本身是异步的,它允许接收者在消息发送很长时间后再取回消息,这和大多数通信协议是不同的。例如WWW中使用的HTTP协议是同步的,因为客户端在发出请求后必须等待服务器回应。然而,很多情况下我们需要异步的通信协议。比如,一个进程通知另一个进程发生了一个事件,但不需要等待回应。但消息队列的异步特点,也造成了一个缺点,就是接收者必须轮询消息队列,才能收到最近的消息。

和信号相比,消息队列能够传递更多的信息。与管道相比,消息队列提供了有格式的数据,这可以减少开发人员的工作量。但消息队列仍然有大小限制。

包含文件

1、msg.c

2、msg.h

3、thread.c

源文件1 msg.c

[root@localhost src]# ./a.out hello liuyuCreate msg queue id:65536msg queue id:65536[0] main runningarg value=1 threadmsgsnd cmd = 0arg value=2 threadmsgrcv cmd = 0msgsnd cmd = 1msgrcv cmd = 1[0] main runningmsgsnd cmd = 2msgrcv cmd = 2msgsnd cmd = 3msgrcv cmd = 3[0] main runningmsgsnd cmd = 4msgrcv cmd = 4msgsnd cmd = 5msgrcv cmd = 5Kill queue id:65536waitting thread exit...


读书人网 >编程

热点推荐