messageQ 消息队列

本文深入探讨了MessageQ模块的使用,包括消息队列的创建、打开、关闭及消息的发送与接收过程。强调了一个消息队列可以有多名写者但仅限一名读者的特点,并阐述了消息队列在多核系统中扮演的角色,如图像文件地址的传递等。同时,指出了消息队列适合用于少量信息的传递,而非大规模数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之后就是对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() )

 

转载于:https://www.cnblogs.com/pjl1119/p/10028432.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值