【技术实现步骤摘要】
基于队列的数据处理方法、装置、设备和介质
本专利技术实施例涉及自动驾驶领域,尤其涉及一种基于队列的数据处理方法、装置、设备和介质。
技术介绍
自动驾驶系统中任务调度等模块中会用到队列这种数据结构,在并发环境下,为了保证数据的一致性,必须对队列进行加锁保护。加锁保护后的队列只允许一个线程对该队列进行读操作或写操作(对应队列的出队或入队),操作过程中不允许其他线程对该队列进行操作。上述方案通过对队列加锁保护,使得一个线程完成对该队列的操作后,另一个线程才可以对该队列进行操作。然而往往数据入队或出队过程中,也存在着数据的动态创建和复制,上述方案无疑限制了系统并发的性能。
技术实现思路
本专利技术实施例提供一种基于队列的数据处理方法、装置、设备和介质,以提高系统数据处理的并发性能。第一方面,本专利技术实施例提供了一种基于队列的数据处理方法,该方法包括:接收对目标队列的数据写入指令或数据读取指令,其中所述目标队列是长度固定的有界队列;读取目标队列的尾索引取值和头索引取值;依据读取的尾索引取值、头索引取值以及目标队列的长度,对所述目标队列执行数据写入操作或数据读取操作。第二方面, ...
【技术保护点】
1.一种基于队列的数据处理方法,其特征在于,包括:接收对目标队列的数据写入指令或数据读取指令,其中所述目标队列是长度固定的有界队列;读取目标队列的尾索引取值和头索引取值;依据读取的尾索引取值、头索引取值以及目标队列的长度,对所述目标队列执行数据写入操作或数据读取操作。
【技术特征摘要】
1.一种基于队列的数据处理方法,其特征在于,包括:接收对目标队列的数据写入指令或数据读取指令,其中所述目标队列是长度固定的有界队列;读取目标队列的尾索引取值和头索引取值;依据读取的尾索引取值、头索引取值以及目标队列的长度,对所述目标队列执行数据写入操作或数据读取操作。2.根据权利要求1所述的方法,其特征在于,所述依据读取的尾索引取值、头索引取值以及目标队列的长度,对所述目标队列执行数据写入操作,包括:若依据读取的尾索引取值、头索引取值以及目标队列的长度,确定所述目标队列未满,且通过原子操作确定目标队列的尾索引取值没有变化,则将待写入数据写入尾索引取值对应的队列位置,并调整目标队列的尾索引取值。3.根据权利要求2所述的方法,其特征在于,所述将待写入数据写入尾索引取值对应的队列位置,包括:若尾索引取值对应的队列位置的数据状态标志位是无数据,则将所述待写入数据写入该队列位置,并将该队列位置的数据状态标志位修改为有数据。4.根据权利要求1所述的方法,其特征在于,所述依据读取的尾索引取值、头索引取值以及目标队列的长度,对所述目标队列执行数据写入操作,包括:若依据读取的尾索引取值、头索引取值以及目标队列的长度,确定所述目标队列未满,且通过原子操作确定目标队列的尾索引取值发生变化,则重新读取目标队列的尾索引取值和头索引取值,并依据重新读取的尾索引取值、头索引取值以及目标队列的长度,对所述目标队列重新执行数据写入操作,直到将待写入数据成功写入所述目标队列为止。5.根据权利要求1-4中任一所述的方法,其特征在于,所述依据读取的尾索引取值、头索引取值以及目标队列的长度,对所述目标队列执行数据读取操作,包括:若依据读取的头索引取值、尾索引取值以及目标队列的长度,确定所述目标队列不为空,且则通过原子操作确定目标队列的头索引取值没有变化,则从目标队列中头索引取值对应的队列位置读取数据,并调整目标队列的头索引取值。6.根据权利要求5所述的方法,其特征在于,所述从目标队列中头索引取值对应的队列位置读取数据,包括:若目标队列中头索引取值对应的队列位置的数据状态标志位是有数据,则从该队列位置读数据,并将该队列位置的数据状态标志位修改为无数据。7.根据权利要求1-4中任一所述的方法,其特征在于,所述依据读取的尾索引取值、头...
【专利技术属性】
技术研发人员:冯凯文,陈卓,党跃东,李科磊,鲍万宇,倪忠俊,
申请(专利权)人:百度在线网络技术北京有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。