数据处理方法及装置、存储介质及电子设备制造方法及图纸

技术编号:37867566 阅读:21 留言:0更新日期:2023-06-15 20:57
本发明专利技术提供一种数据处理方法及装置、存储介质及电子设备,该方法包括:在对动态数组中的数据进行处理时,先处理读取到的描述符数据中记录的未完成的写入操作,然后再进行后续的处理,由此可以保证多个线程对动态数组进行处理时数据语义的正确性,避免数据出现错乱,并且通过使用未停用指针记录列表和停用指针记录列表来实现不同的线程读取相同的指针地址不会释放内存,由此可以保证不同的线程处理数组时不会复用之前已经被释放的内存地址,从而避免ABA问题。避免ABA问题。避免ABA问题。

【技术实现步骤摘要】
数据处理方法及装置、存储介质及电子设备


[0001]本专利技术涉及数据处理
,特别涉及一种数据处理方法及装置、存储介质及电子设备。

技术介绍

[0002]随着计算机技术的发展,为了提高数据的处理效率,系统通常支持多个同时线程对进行数据处理,从而实现系统的高并发。系统实现高并发后会存在多个线程处理一个数组的数据的情况,在此情况下,容易出现线程1因堵塞、资源获取慢等问题等待执行,使得对数组的写入操作未执行,而在线程1在等待执行的期间,有一个线程2对数组进行了操作,使得数组的数据发生了改变,这容易导致在线程1结束等待后执行对数组的写入操作时,数据出现错乱情况。

技术实现思路

[0003]有鉴于此,本专利技术实施例提供一种数据处理方法及装置、存储介质及电子设备,本专利技术在对数组处理时,先执行该数组中存在未完成的写入操作,然后再对数组进行处理,由此可以确保数组中的数据的语义的正确性,避免数据错乱。
[0004]为实现上述目的,本专利技术实施例提供如下技术方案:
[0005]一种数据处理方法,包括
[000本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:当接收到调用方对动态数组发送的插入请求时,将所述动态数组的描述符指针当前指向的地址确定为第一指针地址;确定与所述第一指针地址对应的第一描述符数据,以及将所述第一指针地址存入预设的未停用指针记录列表;执行所述第一描述符数据中记录的未完成的写入操作后,为所述调用方提供的插入数据确定分配内存,以及确定所述插入数据的插入位置;基于所述插入数据和所述插入位置生成第二描述符数据和所述第二描述符数据的第二指针地址,将所述第二指针地址存入所述未停用指针记录列表;当将所述描述符指针指向的地址更新为第二指针地址时,将所述第一指针地址从所述未停用指针记录列表移动至预设的停用指针记录列表,以及将所述第二指针地址从所述未停用指针记录列表移除,并执行更新后的描述符指针所指向的地址的数据中记录的写入操作。2.根据权利要求1所述的方法,其特征在于,所述为所述调用方提供的插入数据确定分配内存,包括:确定所述插入数据所属的分桶,并获取所述分桶的内存地址指针;判断所述内存地址指针是否为空;当确定所述内存地址指针不为空时,确定所述内存地址指针指向的内存,并将该内存确定为所述分桶的分配内存;当确定所述内存地址指针为空时,确定所述分桶的内存大小,并确定与所述内存大小对应的内存块;基于所述内存块的地址信息更新所述内存地址指针,当所述内存地址指针更新成功时,确定所述内存块为所述分桶的分配内存。3.根据权利要求1所述的方法,其特征在于,还包括:当所述描述符指针指向的地址未更新为第二指针地址时,将所述第二指针地址放入所述停用指针记录列表;释放所述未停用指针记录列表中的第一指针地址。4.根据权利要求1所述的方法,其特征在于,所述执行所述第一描述符数据中记录的未完成的写入操作,包括:读取所述第一描述符数据中记录的未完成的写入操作的记录信息;基于所述记录信息确定写入分桶,以及确定在所述写入分桶中的写入位置;将所述记录信息中的写入信息更新至所述写入位置所对应的内存中,并将该写入操作标记为完成。5.根据权利要求1所述的方法,其特征在于,还包括:接收所述调用方对所述动态数组发送的删除请求;将所述动态数组的描述符指针当前指向的地址确定为第三指针地址;确定与所述第三指针地址对应的第三描述符数据,以及将所述第三指针地址存入预设的未停用指针记录列表;执行所述第三描述符数据中记录的未完成的写入操作后,在所述动态数组中确定删除
数据,并将所述删除数据从所述动态数组中删除,得到新的动态数组;基于所述新的动态数组生成第四描述符数据以及所述第四描述符数据的第四指针地址,并将所述第...

【专利技术属性】
技术研发人员:刘毅唐晔罗江伟张磊
申请(专利权)人:湖南快乐阳光互动娱乐传媒有限公司
类型:发明
国别省市:

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

1