[发明专利]一种多线程环境下的数据处理方法及装置有效
申请号: | 201910174014.8 | 申请日: | 2019-03-08 |
公开(公告)号: | CN110058940B | 公开(公告)日: | 2022-11-22 |
发明(设计)人: | 王康龙;秦刚;钱津津;司孝波;叶国华 | 申请(专利权)人: | 苏宁易购集团股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 江苏圣典律师事务所 32237 | 代理人: | 苏一帜 |
地址: | 210042 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多线程 环境 数据处理 方法 装置 | ||
本发明实施例公开了一种多线程环境下的数据处理方法及装置,涉及大数据技术领域,能够提高线程资源的使用率,减少低负载、空置线程的情况。本发明包括:获取请求行数和分包大小,利用所述请求行数和所述分包大小确定线程数,其中,所述请求行数表示请求数据中的数据行的总数,所述分包大小表示每个线程处理请求行的最大数;对所述请求数据进行分组,得到至少2个任务组;根据所确定的线程数,为各任务组分配线程资源。本发明适用于处理多线程环境下的海量请求。
技术领域
本发明涉及大数据技术领域,尤其涉及一种多线程环境下的数据处理方法及装置。
背景技术
多线程均衡处理一批实时或异步的业务数据,均衡的为每个线程分配相对等量的业务数据。其中,这些业务数据可以是无相互依赖或无相互竞争的业务数据,也可以是存在有资源争抢情况的业务数据。
在目前的应用方案中,当一个请求有很多行的数据来临,为了提高处理速度,采用多线程处理,如果线程池线程足够,程序会在线程池中为每一行数据获取一个线程处理。
但是,随着网站流量的提高,多个或大量请求同时来临时,会用尽机器的线程,由于操作系统的线程分配太多,上下文频繁切换,并且线程分配的任务不均衡会进一步导致请求处理变的缓慢。且还由于线程分配的任务不均衡,有的线程处理数据行数多,花的时间长,有的线程处理的行数少,花的时间短,但最终要统一等到所有线程处理完成才返回,线程资源不能充分利用。
发明内容
本发明的实施例提供一种多线程环境下的数据处理方法及装置,能够提高线程资源的使用率,减少低负载、空置线程的情况。
为达到上述目的,本发明的实施例采用如下技术方案:
根据所确定的线程数,为各任务组分配线程资源。
确定各业务数据之间的关系,所述各业务数据与所述请求数据关联;其中,所述各业务数据之间的关系包括:所述各业务数据之间无相互依赖关系,或者,所述各业务数据之间为依赖关系。若所确定的线程数大于最大处理的线程总数,则根据所述请求行数和所述最大处理的线程总数,更新所述任务组大小,其中,所述最大处理的线程总数表示一个请求允许开启的最大线程数。
获取请求行数和分包大小,利用所述请求行数和所述分包大小确定线程数,其中,所述请求行数表示请求数据中的数据行的总数,所述分包大小表示每个线程处理请求行的最大数;对所述请求数据进行分组,得到至少2个任务组;根据所确定的线程数,为各任务组分配线程资源。
其中,所述利用所述请求行数和所述分包大小确定线程数,包括:当所述各业务数据之间的关系为无相互依赖关系时,获取所述请求行数与所述分包大小的比值;若所述比值为整数,则将所述比值作为所述线程数。若所述比值不为整数,则获取所述分包大小与所述比值的整数的乘积,并得到所述请求行数与所述乘积的差值;根据所述差值,将多出的请求行数量依次分配至各个分包,并记录分配后的分包的最大值;利用所述分包的最大值更新所述任务组大小。
进一步的,所述利用所述请求行数和所述分包大小确定线程数,包括:
当所述各业务数据之间的关系存在依赖关系时,获取存在依赖关系的业务数据的类别数量,和各个类别的存在依赖关系的业务数据的数据行数;
若各个类别的数据行数全部都小于或等于所述分包大小,则所述分包大小不变;若存在至少一个类别的数据行数大于所述分包大小,则将最大的数据行数设定为所述分包大小;
获取所述请求行数与当前的分包大小的比值,若所述比值为整数,则将所述比值作为所述线程数;
若所述比值不为整数,则向上舍入数字取整数后作为所述线程数。
在得到所述线程数n后,获取排序队列中的第n个和第n+1个类别的数据行数,其中,各个类别的数据行数按照数值从大到小的顺序排列得到所述排序队列;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏宁易购集团股份有限公司,未经苏宁易购集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910174014.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:系统扩容方法、装置及设备
- 下一篇:任务调度管理方法、装置、设备及存储介质