System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,具体涉及一种基于共享内存的数据处理方法、装置及存储介质。
技术介绍
1、随着社会的发展,在各类通信场景下,共享内存的使用场景在不断增加,而共享内存在使用的过程中,不同的进程之间读写共享内存上的同一块数据时,往往需要使用锁来进行数据的同步,常规的实现方式有通过共享互斥锁,共享互斥锁具体实现方式为在共享内存空闲和被访问两种状态是配置不同的标记,在被访问标识的情况下,说明当前共享内存正在被其他进程访问,无法进行访问,在空闲标识的情况下,说明当前共享内存未被其他进程访问,可以进行访问,并在访问时将空闲标识修改为被访问标识,以此起到保证在任一时刻,只能有一个进程访问该共享内存的作用。
2、共享互斥锁在数据交互较为频繁的场景中存在效率低下的问题,例如读取操作较多的场景下,存在多个进程需要频繁读取共享内存中的数据,若采用共享互斥锁则会存在多个进程需要排队,共享内存利用率低下的问题。
技术实现思路
1、为了解决上述技术问题,本申请提供了一种基于共享内存的数据处理方法、装置及存储介质。
2、第一方面,本申请提供了一种基于共享内存的数据处理方法,所述方法包括:
3、获取共享内存块对应的数据操作指令,所述共享内存包含锁区域和数据块区域;
4、基于所述数据操作指令对应的操作类型,确定所述锁区域对应的加锁条件;
5、在所述锁区域存储的状态变量符合所述加锁条件的情况下,响应于所述数据操作指令,在所述数据块区域执行所述数据操作指令
6、可选的,所述在所述锁区域存储的状态变量符合所述加锁条件的情况下,响应于所述数据操作指令,在所述数据块区域执行所述数据操作指令对应的数据操作,包括:
7、在所述锁区域存储的状态变量符合所述加锁条件的情况下,在所述锁区域执行所述操作类型对应的加锁操作,所述加锁操作用于基于所述操作类型修改所述状态变量;
8、在所述数据块区域执行所述数据操作指令对应的数据操作;
9、基于所述数据操作执行完后,在所述锁区域执行所述加锁操作对应的解锁操作。
10、可选的,所述基于所述数据操作指令对应的操作类型,确定所述锁区域对应的加锁条件,包括:
11、确定所述数据操作指令对应的操作类型;
12、在所述操作类型为读取类型的情况下,将所述读取类型对应的可读条件确定为所述加锁条件。
13、可选的,所述在所述锁区域执行所述操作类型对应的加锁操作,包括:基于所述加锁操作,将所述状态变量的数值增加第一修改值;
14、所述在所述锁区域执行所述加锁操作对应的解锁操作,包括:基于所述解锁操作,将所述状态变量的数值减小所述第一修改值。
15、可选的,所述基于所述数据操作指令对应的操作类型,确定所述锁区域对应的加锁条件,包括:
16、确定所述数据操作指令对应的操作类型;
17、在所述操作类型为写入类型的情况下,将所述写入类型对应的可写条件确定为所述加锁条件。
18、可选的,所述在所述锁区域执行所述操作类型对应的加锁操作,包括:基于所述加锁操作,将所述状态变量的数值减小第二修改值;
19、所述在所述锁区域执行所述加锁操作对应的解锁操作,包括:基于所述解锁操作,将所述状态变量的数值增加所述第二修改值。
20、可选的,在确定所述锁区域对应的加锁条件之后还包括:
21、获取所述锁区域存储的状态变量;
22、确定所述状态变量的数值是否符合所述加锁条件;
23、在所述数值符合所述加锁条件的情况下,确定所述状态变量符合所述加锁条件;
24、在所述状态变量的数值不符合所述加锁条件的情况下,返回执行所述获取所述锁区域存储的所述状态变量的步骤。
25、第二方面,本申请提供了一种基于共享内存的数据处理装置,所述装置包括:
26、获取模块,用于获取共享内存块对应的数据操作指令,所述共享内存包含锁区域和数据块区域;
27、确定模块,用于基于所述数据操作指令对应的操作类型,确定所述锁区域对应的加锁条件;
28、响应模块,用于在所述锁区域存储的状态变量符合所述加锁条件的情况下,响应于所述数据操作指令,在所述数据块区域执行所述数据操作指令对应的数据操作。
29、第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
30、存储器,用于存放计算机程序;
31、处理器,用于执行存储器上所存放的程序时,实现第一方面任一项实施例所述的方法。
32、第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项实施例所述的方法。
33、本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
34、本申请实施例提供的方法,通过获取共享内存块对应的数据操作指令,共享内存包含锁区域和数据块区域,基于数据操作指令对应的操作类型,确定锁区域对应的加锁条件,在锁区域存储的状态变量符合加锁条件的情况下,响应于数据操作指令,在数据块区域执行数据操作指令对应的数据操作;由此,采用状态变量是否符合加锁条件,起到确定是否执行数据操作指令对应的数据操作的作用,也即符合加锁条件的情况下可以同时执行多个数据操作指令对应的数据操作,实现了提高共享内存利用率的效果。
本文档来自技高网...【技术保护点】
1.一种基于共享内存的数据处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述在所述锁区域存储的状态变量符合所述加锁条件的情况下,响应于所述数据操作指令,在所述数据块区域执行所述数据操作指令对应的数据操作,包括:
3.根据权利要求2所述的方法,其特征在于,所述基于所述数据操作指令对应的操作类型,确定所述锁区域对应的加锁条件,包括:
4.根据权利要求3所述的方法,其特征在于,
5.根据权利要求2所述的方法,其特征在于,所述基于所述数据操作指令对应的操作类型,确定所述锁区域对应的加锁条件,包括:
6.根据权利要求5所述的方法,其特征在于,
7.根据权利要求1-3任一所述的方法,其特征在于,在确定所述锁区域对应的加锁条件之后还包括:
8.一种基于共享内存的数据处理装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
10.一种计算机可读存
...【技术特征摘要】
1.一种基于共享内存的数据处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述在所述锁区域存储的状态变量符合所述加锁条件的情况下,响应于所述数据操作指令,在所述数据块区域执行所述数据操作指令对应的数据操作,包括:
3.根据权利要求2所述的方法,其特征在于,所述基于所述数据操作指令对应的操作类型,确定所述锁区域对应的加锁条件,包括:
4.根据权利要求3所述的方法,其特征在于,
5.根据权利要求2所述的方法,其特征在于,所述基于所述数据操作指令对应的操作类型,确定所述锁区...
【专利技术属性】
技术研发人员:薛长权,
申请(专利权)人:重庆长安汽车股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。