[发明专利]一种多线程环境下的数据处理方法及装置有效
申请号: | 201910174014.8 | 申请日: | 2019-03-08 |
公开(公告)号: | CN110058940B | 公开(公告)日: | 2022-11-22 |
发明(设计)人: | 王康龙;秦刚;钱津津;司孝波;叶国华 | 申请(专利权)人: | 苏宁易购集团股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 江苏圣典律师事务所 32237 | 代理人: | 苏一帜 |
地址: | 210042 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多线程 环境 数据处理 方法 装置 | ||
1.一种多线程环境下的数据处理方法,其特征在于,包括:
获取请求行数和分包大小,利用所述请求行数和所述分包大小确定线程数,其中,所述请求行数表示请求数据中的数据行的总数,所述分包大小表示每个线程处理请求行的最大数;
对所述请求数据进行分组,得到至少2个任务组;
根据所确定的线程数,为各任务组分配线程资源;
所述利用所述请求行数和所述分包大小确定线程数,包括:当各业务数据之间的关系为无相互依赖关系时,获取所述请求行数与所述分包大小的比值;若所述比值为整数,则将所述比值作为所述线程数;
所述利用所述请求行数和所述分包大小确定线程数,包括:当所述各业务数据之间的关系存在依赖关系时,获取存在依赖关系的业务数据的类别数量,和各个类别的存在依赖关系的业务数据的数据行数;若各个类别的数据行数全部都小于或等于所述分包大小,则所述分包大小不变;若存在至少一个类别的数据行数大于所述分包大小,则将最大的数据行数设定为所述分包大小;获取所述请求行数与当前的分包大小的比值,若所述比值为整数,则将所述比值作为所述线程数;若所述比值不为整数,则向上舍入数字取整数后作为所述线程数。
2.根据权利要求1所述的方法,其特征在于,还包括:
确定各业务数据之间的关系,所述各业务数据与所述请求数据关联;
其中,所述各业务数据之间的关系包括:所述各业务数据之间无相互依赖关系,或者,所述各业务数据之间为依赖关系。
3.根据权利要求2所述的方法,其特征在于,还包括:
若所确定的线程数大于最大处理的线程总数,则根据所述请求行数和所述最大处理的线程总数,更新任务组大小,其中,所述最大处理的线程总数表示一个请求允许开启的最大线程数。
4.根据权利要求1所述的方法,其特征在于,还包括:
若所述比值不为整数,则获取所述分包大小与所述比值的整数的乘积,并得到所述请求行数与所述乘积的差值;
根据所述差值,将多出的请求行数量依次分配至各个分包,并记录分配后的分包的最大值;
利用所述分包的最大值更新任务组大小。
5.根据权利要求1所述的方法,其特征在于,还包括:
在得到所述线程数n后,获取排序队列中的第n个和第n+1个类别的数据行数,其中,各个类别的数据行数按照数值从大到小的顺序排列得到所述排序队列;
将所述第n个和第n+1个类别的数据行数合并为一个任务组,并按照数值从大到小的顺序对所述排序队列重新进行排列,其中,任务组的数值为任务组中的数据行数之和;
重复上述过程,直至队列中存在第1至第N任务组,其中,N等于所述线程数。
6.根据权利要求5所述的方法,其特征在于,还包括:
获取第1任务组中的数据行数最大的类别,和第N任务组中的数据行数最小的类别,并将二者进行互换,每次互换后按照数值从大到小的顺序对所述排序队列重新进行排列;
重复N-1次后,按照数值从大到小的顺序重新进行排列,并利用重复N-1次后的排列更新任务组大小。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏宁易购集团股份有限公司,未经苏宁易购集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910174014.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:系统扩容方法、装置及设备
- 下一篇:任务调度管理方法、装置、设备及存储介质