数据队列的状态确定方法、装置、电子设备及介质制造方法及图纸

技术编号:37961074 阅读:20 留言:0更新日期:2023-06-30 09:35
本公开涉及一种数据队列的状态确定方法、装置、电子设备及介质,可应用于车辆或其他电子设备,数据队列用于同一个进程的多个线程之间进行通信,上述状态确定方法包括:在上述数据队列的存储单元中设置可用存储单元和标识存储单元,上述标识存储单元为禁止使用状态;获取写指针指向上述存储单元的第一位置和上述标识存储单元的第二位置;在上述第一位置与上述第二位置相邻、上述第一位置对应的可用存储单元写入数据且上述第二位置位于上述数据队列的末端的情况下,确定上述数据队列处于写满状态。针对仅存在数据写入的时段或者同时存在数据读写的时段,均能够准确识别数据队列中可用存储单元是否写满的状态,满足状态监测需求。求。求。

【技术实现步骤摘要】
数据队列的状态确定方法、装置、电子设备及介质


[0001]本公开涉及计算机
,尤其涉及一种数据队列的状态确定方法、装置、电子设备及介质。

技术介绍

[0002]在操作系统中,进程内多个线程之间可以利用缓冲区来进行数据通信。例如以车辆操作系统中的第二代机器人操作系统(ROS2)为例,ROS2系统是一种开源机器人操作系统,由于具有成熟的框架,因此开发者大多基于该ROS2系统进行上层应用的开发。在ROS2操作系统中,通过创建数据缓冲区,其中一些线程(作为数据发送方)将数据写入至数据缓冲区,由另外的一些线程(作为数据接收方)将数据缓冲区内写入的数据读出,实现线程之间的数据通信。
[0003]在线程之间进行数据通信的过程中,各个线程在对数据缓冲区进行操作之前,需要准确确定数据缓冲区所处的状态。相关技术中,有的方式通过对读指针和写指针的指向位置来确定数据缓冲区的状态,有些情况下在读指针和写指针指向同一个位置时,无法确定数据缓冲区是满还是空。有的方式是通过获取各个存储单元的数据状态来确定数据缓冲区的状态,这样的方式需要监测每个存储单元,耗费一定本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据队列的状态确定方法,其特征在于,所述状态确定方法包括:在所述数据队列的存储单元中设置可用存储单元和标识存储单元,所述标识存储单元为禁止使用状态;获取写指针指向所述存储单元的第一位置和所述标识存储单元的第二位置;在所述第一位置与所述第二位置相邻、所述第一位置对应的可用存储单元写入数据且所述第二位置位于所述数据队列的末端的情况下,确定所述数据队列处于写满状态。2.根据权利要求1所述的状态确定方法,其特征在于,还包括:获取读指针所指向的第三位置;其中所述第三位置对应的可用存储单元尚未读取;根据所述第一位置、所述第二位置和所述第三位置之间的关系,确定所述数据队列为空状态或满状态;所述空状态用于表示同时存在读写的情况下所述数据队列为空,所述满状态用于表示同时存在读写的情况下所述数据队列为满。3.根据权利要求2所述的状态确定方法,其特征在于,所述可用存储单元的个数为k个,k为正整数;根据所述第一位置、所述第二位置和所述第三位置之间的关系,确定所述数据队列为空状态或满状态,包括:在所述第一位置和所述第三位置相同且数据已经读取的情况下,确定所述数据队列为空状态;在所述第一位置与所述第二位置相邻、且所述第三位置与所述第二位置之间间隔k

1个所述存储单元的情况下,确定所述数据队列为满状态;在所述第二位置与所述第三位置相邻、所述第一位置位于所述数据队列的末端、且所述第二位置位于所述数据队列的起始端的情况下,确定所述数据队列为满状态;在所述第一位置、所述第二位置和所述第三位置基于读写顺序正向依序相邻的情况下,确定所述数据队列为满状态。4.根据权利要求2或3所述的状态确定方法,其特征在于,所述标识存储单元的第二位置是可移动的或者固定设置于所述数据队列的末端;在所述标识存储单元的第二位置是可移动的情况下,具有以下情况中的一种:所述第二位置跟随所述第一位置的移动而移动;在移动过程中,所述标识存储单元位于所述写指针的正向相邻位置,所述正向为所述数据队列的读写顺序对应的方向;或者,所述第二位置跟随所述第三位置的移动而移动;在移动过程中,所述标识存储单元位于所述读指针的反向相邻位置,所述反向为所述数据队列的读写顺序对应的逆方向;或者,所述第二位置跟随所述第一位置的移动而移动,在达到所述数据队列的末端的情况下,切换至所述第二位置跟随所述第三位置的移动而移动。5.根据权利要求2或3所述的状态确定方法,其特征在于,所述数据队列用于同一个进程下的多个线程之间的通信,所述数据队列基于数组形式创建得到,对应的内存空间为2
n
,n为正整数;在所述数据队列为非满状态下,所述多个线程中优先抢占所述写指针的第一线程基于比较并交换算法在所述第一位置对应的可用存储单元执行数据写入操作,在成功执行所述数据写入操作之后,所述写指针基于读写顺序指向下一个待写存储单元;在所述数据队列为非满状态下,所述多个线程中未优先抢占所述写指针的第三线程基
于比较并...

【专利技术属性】
技术研发人员:陈剑峰肖杰许倜陈永波
申请(专利权)人:国科础石重庆软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1