messageQ 消息队列

Posted pjl1119

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了messageQ 消息队列相关的知识,希望对你有一定的参考价值。

之后就是对MessageQ的打开,关闭, 消息的发送和接受。

MessageQ_create(),MessageQ_delete(); 对消息的创建和删除。

MessageQ_open(); MessageQ_close(); 对消息通道的打开和关闭。

MessageQ_put();MessageQ_get();消息的接受和发送。

注意:

1.一个消息队列可以有多个写者,但是只能有一个读者。(一般有几个核就创建几个消息通道, 一个核对应一个消息通道)

2.消息队列由谁创建就有谁删除,对打开就有谁关闭, (通常为写端打开,写端关闭,读端创建,读端删除)

3.可以对发送消息的结构体进行自由封装

 

MessageQ模块:主核(核0)在将图像文件输入共享内存后,需要将输入图像缓存和输出图像缓存的地址打包成消息,传递给从核。总之,MessageQ是用来传递少量信息的,一般是地址,标志位之类的参数,不是传递大规模数组用的。对于大规模的数组,可以利用messageQ传递其首地址。

MessageQ模块的主要特点:
1. 实现了处理期间变长消息的传递,所需要传递的消息一般超过32bit;
2. 其消息的传递都是通过操作消息队列来实现的;
3. 每个消息队列可以有多个写者,但只能有一个读者,而每个任务(task)可以对多个消息队列进行读写;
4. 一个宿主在准备接收消息时,必须先创建消息队列,而在发送消息前,需要打开预定的接收消息队列;

很关键的一点就是 谁接收,谁创建( messageQ_create() )
谁发送,谁打开( messageQ_open() )

 










以上是关于messageQ 消息队列的主要内容,如果未能解决你的问题,请参考以下文章

CCS+C6678LE开发记录11:多核协作(IPC)入门

8.windows消息机制消息队列

如何清空Windows消息队列

消息队列属性及常见消息队列介绍

RabbitMQ 消息队列

Linux进程间通信 --- 消息队列