[发明专利]一种数据处理方法、装置、电子设备及存储介质在审
申请号: | 202010415047.X | 申请日: | 2020-05-15 |
公开(公告)号: | CN111767281A | 公开(公告)日: | 2020-10-13 |
发明(设计)人: | 张云龙 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F9/48 |
代理公司: | 北京华夏泰和知识产权代理有限公司 11662 | 代理人: | 杜欣 |
地址: | 100080 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据处理 方法 装置 电子设备 存储 介质 | ||
本发明涉及一种数据处理方法、装置、电子设备及存储介质,所述方法包括:利用生产者线程处理待处理任务,得到生产数据;在暂存索引数组中查找与所述生产者线程对应的索引位置;根据所述索引位置查找与所述索引位置对应的暂存链表;利用与所述生产者线程对应的消费者线程消费所述暂存链表中的所述生产数据。本发明实施例通过在暂存索引数组中设置与所述生产者线程对应的索引位置,并且为每个索引位置设置对应的暂存链表,实现为每一对生产者线程和消费者线程设置独立的索引位置及暂存链表,也即,为每一对生产者线程和消费者线程建立专用的数据存储空间,大幅提高系统并发计算的效率。
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
当前,为了提高系统运算性能,通过多线程进行系统构建是一种非常普遍的方法。为了解决多线程架构下的数据一致性安全问题,业界通常做法是使用线程锁。线程锁主要是用来防止多个线程同时读写某一块内存区域。
当有多个线程需要访问同一块内存区域时,由于加锁后同一时间只能有一个线程在执行,所以其余线程必须要等待当前线程执行完之后才能读写该块内存区域。为线程加锁这一方法在保证安全的同时,由于要不断的等待当前加锁的线程执行完之后才能切换至下一线程,增加了很多操作系统层面的线程切换操作,非常影响系统整体的并发计算效率。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种数据处理方法、装置、电子设备及存储介质。
第一方面,本申请提供了一种数据处理方法,所述方法包括:
利用生产者线程处理待处理任务,得到生产数据;
在暂存索引数组中查找与所述生产者线程对应的索引位置;
根据所述索引位置查找与所述索引位置对应的暂存链表;
利用与所述生产者线程对应的消费者线程消费所述暂存链表中的所述生产数据。
可选的,在暂存索引数组中查找与所述生产者线程对应的索引位置的步骤,包括:
获取所述生产者线程的线程标识;
确定所述线程标识是否位于预设路由表中;
若所述线程标识位于预设路由表中,将所述预设路由表中与所述线程标识对应的索引位置确定为与所述生产者线程对应的索引位置。
可选的,在暂存索引数组中查找与所述生产者线程对应的索引位置的步骤,还包括:
若所述线程标识不位于所述预设路由表中,为所述线程标识分配对应的索引位置;
将为所述线程标识分配的索引位置确定为与所述生产者线程对应的索引位置;
将所述线程标识与所述索引位置之间的对应关系存储至所述预设路由表中。
可选的,所述方法还包括:
判断所述暂存链表中当前待消费的数据量是否达到预设允许最大数据量;
若所述暂存链表中当前待消费的数据量达到预设允许最大数据量,等待消费者线程消费生产数据,直至所述暂存链表中当前待消费的数据量小于所述预设允许最大数据量。
可选的,所述方法还包括:
若所述暂存链表中当前待消费的数据量小于预设允许最大数据量,执行利用生产者线程处理所述待处理任务,得到生产数据的步骤;
在得到生产数据后,向所述消费者线程发送数据消费通知。
可选的,所述方法还包括:
判断所述暂存链表中是否存在待消费的生产数据;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010415047.X/2.html,转载请声明来源钻瓜专利网。