消息队列
来源:互联网 发布:e25歼击车数据 编辑:程序博客网 时间:2024/05/16 05:56
2.消息队列的使用方式就是先把数据放入消息中,然后把消息放入队列中。队列的管理由内核完成。
3.消息队列就是以内核管理的一个队列作为交互的媒介。比较常用的IPC。
消息队列的使用步骤:
1.使用ftok()或共用的头文件提供一个key。
2.使用msgget(key,……)创建/获取一个消息队列。
3.使用msgsnd()发送消息(把消息放入队列中)或使用msgrcv()取出消息(把消息从队列中取出)。
4.如果确保不再使用消息队列,可以使用msgctl(IPC_RMID)删除。
消息分为 有类型和无类型消息,无类型消息可以支持任意类型的数据,但只能先入先出,如果放入的顺序和取出的次序不同,一定会出问题,更多的时候使用有类型小型。
有类型消息必须是一个结构体,
struct 名称{//名称 程序员随便起,合法标识符就行
long mtype; //第一个必须long,代表消息类型
数组或结构;//数据区,数据放在这里
}
其中,mtype必须大于0.
int msgsnd(int msgid,void* msgp,size_t msgsz,int flags)
功能:发送消息到消息队列的末尾。
参数:msgid就是消息队列的ID
msgp 就是消息结构体的首地址
msgsz 就是消息结构体中数据的大小(不带类型玩)
flags取0 或IPC_NOWAIT 0就是满了会等,IPC_NOWAIT满了就直接返回-1
返回 :成功返回0,失败返回-1
ssize_t msgrcv(int msgid,void* msgp,size_t msgsz.long msgtype,int flags)
功能:按类型接受
参数:msgid/msgp/msgsz/flags和msgsnd一样
msgtype 可以取三种值
>0 就是接受特定类型的消息(类型=msgtype)
0 就是接受任意类型的消息(先入先出)
<0 就是接受类型小于等于|msgtype|的消息,从小到大顺序:比如:msgtype传了-3 ,接受消息的类型为1 2 3
返回:失败返回-1,成功返回实际接受的字节数。
- 消息队列
- 消息队列
- 消息队列
- 消息队列
- 消息队列
- 消息队列
- 消息队列
- 消息队列
- 消息队列
- 消息队列
- 消息队列
- 消息队列
- 消息队列
- 消息队列
- 消息队列
- 消息队列
- <>消息队列
- 消息队列
- 使用UIScrollViewKeyboardDismissMode实现了Message app的行为
- 待解决问题,备忘
- BI解决方案分享:地产BI数据分析系统的建设
- sqlite3自增key设定(创建自增字段)
- 错误:Unsupported major.minor version 51.0(jdk版本错误)
- 消息队列
- Android APK反编译01
- free( )的一个理解(《C Primer Plus》的一个错误)
- 播放Android项目工程里的视频文件
- 別れと出会いの春に
- 一招瞬间让微信公共平台菜单变的高大上,漂亮的方法(微信运营必看)
- 【软件后门】QQ密码框 - 2010
- org.hibernate.PropertyAccessException: Null value was assigned to a property。。。。完美解决
- Hue 可视化的Hadoop架构工具