http://blog.csdn.net/archimedes_zht/article/details/7401210最近的工作需要用到MessageQueue来做“任务分发”,自己写了一个简单的,但是感觉不够满意。主要还是感觉消息队列持久化要做的好很难,还有各种异常情况等等,短时间开发一个,挑战很...
分类:
其他好文 时间:
2014-12-02 20:49:43
阅读次数:
270
进程通信是应用程序进程之间通过操作系统交换数据与服务对象的机制。Linux操作系统的传统进程间通信(IPC)有多种方式,比如管道,命令管道,信号量,共享内存,消息队列,以及网络与Unix套接字等。虽然理论上And...
分类:
移动开发 时间:
2014-12-02 12:07:18
阅读次数:
286
关于MQX操作系统,也使用了一段时间了,一直想总结一下,今天就算开个头吧,希望后续整理一下思路,多做一些关于MQX的专题总结。言归正传!在MQX应用程序中可采用如下方式实现任务间的资源共享:1.事件、轻量级事件2.信号量、轻量级信号3.互斥锁4.消息、轻量级消息1.事件、轻量..
分类:
其他好文 时间:
2014-11-30 17:18:25
阅读次数:
343
系统建立IPC通讯(如消息队列、共享内存时)必须指定一个ID值。通常情况下,该id值通过ftok函数得到。 ftok原型如下: key_t ftok( char * fname, int id ) fname就时你指定的文件名(该文件必须是存在而且可以访...
分类:
系统相关 时间:
2014-11-30 01:01:09
阅读次数:
286
NAMEmq_overview —— POSIX消息队列概述DESCRIPTIONPOSIX消息队列允许进程以消息的形式交换数据。此API与System V消息队列(msgget(2),msgsnd(2),msgrcv(2)等)有明显不同,但做的事情差不多。消息队列通过mq_open(3)创建和打开...
分类:
其他好文 时间:
2014-11-29 15:44:36
阅读次数:
194
消息队列基本概念 消息队列提供了一个从一个进程向另外一个进程发送一块数据的方法(仅局限与本机) 每个数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型值 消息队列也有管道一样的不足,就是每个消息的最大长度是有上限的(MSGMAX),每个消息队列的总的字节数是有上限的(MSGMNB),系统上消息队列的总数也有一个上限(MSGMNI) 管道 vs. 消息队列:管道: ...
分类:
系统相关 时间:
2014-11-29 11:59:12
阅读次数:
279
消息队列函数 #include
#include
#include
int msgget(key_t key, int msgflg);
int msgctl(int msqid, int cmd, struct msqid_ds *buf);
int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);...
分类:
系统相关 时间:
2014-11-29 11:58:26
阅读次数:
302
API综合使用//父进程发送消息,子进程接收消息
struct msgBuf
{
long mtype; /* message type, must be > 0 */
char mtext[104]; /* message data */
};
const int MSGNUMBER = 10;
int main()
{
//获取一个键
key...
分类:
系统相关 时间:
2014-11-29 11:57:20
阅读次数:
295
消息队列可以认为是一个消息链表,某个进程往一个消息队列中写入消息之前,不需要另外某个进程在该队列上等待消息的达到,这一点与管道和FIFO相反。Posix消息队列与System V消息队列的区别如下:1. 对Posix消息队列的读总是返回最高优先级的最早消息,对System V消息队列的读则可以返回任...
分类:
其他好文 时间:
2014-11-28 17:42:11
阅读次数:
278
共享内存基本概念 共享内存区是最快的IPC形式。一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到内核,换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据(如图)。 共享内存 VS. 其他IPC形式 用管道/消息队列传递数据 用共享内存传递数据 (内核为每个IPC对象维护一个数据结构) 共享内存生成之后,传递数据并不需要再走Linux...
分类:
系统相关 时间:
2014-11-27 16:17:24
阅读次数:
313