System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于无锁队列的读写方法、装置、设备及存储介质制造方法及图纸_技高网

一种基于无锁队列的读写方法、装置、设备及存储介质制造方法及图纸

技术编号:40873174 阅读:7 留言:0更新日期:2024-04-08 16:41
本申请提供了一种基于无锁队列的读写方法、装置、设备及存储介质,涉及数据处理技术领域。在执行所述方法时,先在无锁队列模块中引入虚基类,其中,虚基类用于提供无锁队列为满时的处理接口和无锁队列为空时的处理接口,再将多个读写策略模式作为子类,将虚基类作为父类,将多个读写策略模式继承虚基类,接着,从多个继承虚基类后的读写策略模式中,选取目标读写策略模式,最后利用目标读写策略模式,进行无锁队列的读写。这样,通过引入虚基类以提供处理接口,再将读写策略模式继承虚基类,最后选取目标读写策略模式以实现无锁队列的读写,这样,可以快速地确定并执行策略,进而提升无锁队列的读写效率。

【技术实现步骤摘要】

本申请涉及数据处理,尤其涉及一种基于无锁队列的读写方法、装置、设备及存储介质


技术介绍

1、无锁队列是一种高级数据结构,实现了队列的先进先出功能,又不使用锁的机制,通过原子变量和内存模式的使用来做到高并发下的互斥访问。无锁队列应用在各种编程中,使用无锁队列的时候,当队列满的时候怎么写,是否要等待写,当队列空的时候怎么读,是否要等待读,一直是各个场景中不可避免要处理的问题。在现有技术中,一般需要业务编程人员根据需要自己去编码实现读写,导致无锁队列的读写效率低。

2、综上所述,如何提升无锁队列的读写效率是本领域技术人员亟需解决的问题。


技术实现思路

1、有鉴于此,本申请提供了一种基于无锁队列的读写方法、装置、设备及存储介质,旨在提升无锁队列的读写效率。

2、第一方面,本申请提供了一种基于无锁队列的读写方法,包括:

3、在无锁队列模块中引入虚基类,所述虚基类用于提供所述无锁队列为满时的处理接口和所述无锁队列为空时的处理接口;

4、将多个读写策略模式作为子类,将所述虚基类作为父类,将所述多个读写策略模式继承所述虚基类;

5、从多个继承所述虚基类后的读写策略模式中,选取目标读写策略模式;

6、利用所述目标读写策略模式,进行无锁队列的读写。

7、可选的,所述读写策略模式,包括:

8、当所述无锁队列未满时,写入数据;

9、当所述无锁队列为满时,在间隔第一预设时间后写入数据;

10、当所述无锁队列未空时,读取数据;

11、当所述无锁队列为空时,在间隔第二预设时间后读取数据。

12、可选的,所述读写策略模式,包括:

13、当所述无锁队列未满时,写入数据;

14、当所述无锁队列为满时,调用让步yield方法,使得当前线程让出中央处理器cpu;当所述中央处理器cpu被让出时,写入数据;

15、当所述无锁队列未空时,读取数据;

16、当所述无锁队列为空时,调用所述让步yield方法,使得当前线程让出所述中央处理器cpu;当所述中央处理器cpu被让出时,读取数据。

17、可选的,所述读写策略模式,包括:

18、当所述无锁队列未满时,写入数据;

19、当所述无锁队列为满时,循环写入数据,直至写入成功;

20、当所述无锁队列未空时,读取数据;

21、当所述无锁队列为空时,循环读取数据,直至写入成功。

22、可选的,所述读写策略模式,包括:

23、当所述无锁队列未满时,写入数据;

24、当所述无锁队列为满时,暂停写入,直至接收到第一通知或暂停时间超过预设等待超时时间,写入数据,所述第一通知为当有数据写入成功时生成的通知;

25、当所述无锁队列未空时,读取数据;

26、当所述无锁队列为空时,暂停读取,直至接收到第二通知或暂停时间超过预设等待超时时间,读取数据,所述第二通知为当有数据读取成功时生成的通知。

27、可选的,所述读写策略模式,包括:

28、当所述无锁队列未满时,写入数据,并生成一个读取通知;

29、当所述无锁队列为满时,响应于写入通知,写入数据;

30、当所述无锁队列未空时,读取数据,并生成一个所述写入通知;

31、当所述无锁队列为空时,响应于所述读取通知,读取数据。

32、可选的,所述读写策略模式,包括:

33、当所述无锁队列未满时,写入数据,并通过信号量通知读取;

34、当所述无锁队列为满时,在间隔第三时间后写入数据,直至写入成功;

35、当所述无锁队列未空时,读取数据;

36、当所述无锁队列为空时,响应于通知读取的信号量,读取数据。

37、第二方面,本申请提供了一种基于无锁队列的读写装置,包括:

38、引入模块,用于在无锁队列模块中引入虚基类,所述虚基类用于提供所述无锁队列为满时的处理接口和所述无锁队列为空时的处理接口;

39、继承模块,用于将多个读写策略模式作为子类,将所述虚基类作为父类,将所述多个读写策略模式继承所述虚基类;

40、选取模块,用于从多个继承所述虚基类后的读写策略模式中,选取目标读写策略模式;

41、读写模块,用于利用所述目标读写策略模式,进行无锁队列的读写。

42、第三方面,本申请实施例提供一种计算机设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如本申请实施例第一方面中任一项所述的基于无锁队列的读写方法。

43、第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如本申请实施例第一方面中任一项所述的基于无锁队列的读写方法。

44、本申请提供了一种基于无锁队列的读写方法。在执行所述方法时,先在无锁队列模块中引入虚基类,其中,虚基类用于提供无锁队列为满时的处理接口和无锁队列为空时的处理接口,再将多个读写策略模式作为子类,将虚基类作为父类,将多个读写策略模式继承虚基类,接着,从多个继承虚基类后的读写策略模式中,选取目标读写策略模式,最后利用目标读写策略模式,进行无锁队列的读写。这样,通过引入虚基类以提供处理接口,再将读写策略模式继承虚基类,最后选取目标读写策略模式以实现无锁队列的读写,这样,可以快速地确定并执行策略,减少了编写重复代码,同时提高了代码的灵活性,为无锁队列的读写等待提供了多项选择,带来了使用的便捷性,进而一定程度上提升了无锁队列的读写效率。

本文档来自技高网...

【技术保护点】

1.一种基于无锁队列的读写方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述读写策略模式,包括:

3.根据权利要求1所述的方法,其特征在于,所述读写策略模式,包括:

4.根据权利要求1所述的方法,其特征在于,所述读写策略模式,包括:

5.根据权利要求1所述的方法,其特征在于,所述读写策略模式,包括:

6.根据权利要求1所述的方法,其特征在于,所述读写策略模式,包括:

7.根据权利要求1所述的方法,其特征在于,所述读写策略模式,包括:

8.一种基于无锁队列的读写装置,其特征在于,包括:

9.一种计算机设备,其特征在于,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-7任一项所述的基于无锁队列的读写方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如权利要求1-7任一项所述的基于无锁队列的读写方法。

...

【技术特征摘要】

1.一种基于无锁队列的读写方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述读写策略模式,包括:

3.根据权利要求1所述的方法,其特征在于,所述读写策略模式,包括:

4.根据权利要求1所述的方法,其特征在于,所述读写策略模式,包括:

5.根据权利要求1所述的方法,其特征在于,所述读写策略模式,包括:

6.根据权利要求1所述的方法,其特征在于,所述读写策略模式,包括:

7.根据权利要求1所述的方法,其特征...

【专利技术属性】
技术研发人员:李冰王利新
申请(专利权)人:东软睿驰汽车技术沈阳有限公司
类型:发明
国别省市:

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

1