[发明专利]一种基于多线程的文件上传系统及方法有效
申请号: | 201410082305.1 | 申请日: | 2014-03-07 |
公开(公告)号: | CN103841196B | 公开(公告)日: | 2017-05-17 |
发明(设计)人: | 谭曼 | 申请(专利权)人: | 长沙裕邦软件开发有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;G06F9/50 |
代理公司: | 深圳市君胜知识产权代理事务所(普通合伙)44268 | 代理人: | 王永文,刘文求 |
地址: | 410002 湖南省长沙*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 多线程 文件 上传 系统 方法 | ||
技术领域
本发明涉及大批量小文件上传领域,特别涉及一种基于多线程的文件上传系统及方法。
背景技术
在现有技术中,大批量的文件上传会采用多线程技术提高效率,但是在分配线程数额时多采用一刀切模式,即忽视本地电脑硬件的配置情况而只分配固定的线程数。这就造成两个问题:1、硬件配置好的电脑分配的线程不够使得硬件机能没有得到充分应用从而影响上传效率;2、硬件配置低的电脑分配的线程过多造成电脑出现卡机同样影响了文件上传效率。
有鉴于此,现有技术有待改进和提高。
发明内容
鉴于上述现有技术的不足之处,本发明的目的在于提供一种基于多线程的文件上传系统及方法,从而解决现有技术在大批量小文件上传过程中,不考虑硬件本身而直接采取多线程将可能出现卡机等情况,甚至影响系统性能的问题。
为了达到上述目的,本发明采取了以下技术方案:
一种基于多线程的文件上传的方法,其中,所述方法包括以下步骤:
S1、获取客户机的配置参数,其中,所述配置参数包括CPU个数cpucount:
S2、获取用户选择需要上传的文件个数filecount;
S3、根据CPU个数cpucount和文件个数filecount,按照预定规则确定所需建立的线程个数n;
S4、把准备上传的文件按文件大小均衡的原则分配给n个线程,n个线程同时工作,直至完成上传。
所述的基于多线程的文件上传的方法,其中,所述步骤S1中通过读取注册表获取本机CPU的名称和频率,通过Windows API GetSystemInfo获取CPU个数cpucount以及CPU型号。
所述的基于多线程的文件上传的方法,其中,所述步骤S3中按照预定规则确定所需建立的线程个数n具体包括:
若filecount≥( 2*cpucount + 2 ),则n = 2*cpucount + 2;
若filecount < ( 2*cpucount + 2 ),则n = filecount。
所述的基于多线程的文件上传的方法,其中,所述步骤S4中把准备上传的文件按文件大小均衡的原则分配给n个线程具体包括:
S41、先按文件大小做升序排列;
S42、把前面n个文件分别分配给n个线程;
S43、然后从文件序列的最后一个开始,把文件依次分配给当前线程文件中大小最小的一个线程。
所述的基于多线程的文件上传的方法,其中,所述步骤S43具体包括以下步骤:
S431、比较当前线程所含文件体积的大小,然后,将剩余的文件依次分配给当前线程所含文件体积中体积最小的一个线程;
S432、重复上述步骤直至将所有文件分配完成。
所述的基于多线程的文件上传的方法,其中,所述步骤S43具体包括以下步骤:
S431*、根据所含文件总体积大小对线程由小到大进行升序排序;
S432*、将剩余的文件依次分配给按序排列的线程;
S433*、剩余的文件数量小于线程数,则步骤完毕;剩余的文件数量大于线程数,则重复上述步骤直至将所有文件分配完成。
一种基于多线程的文件上传的系统,其中,所述系统包括:
第一获取单元,用于获取客户机的配置参数,其中,所述配置参数包括CPU个数cpucount:
第二获取单元,用于获取用户选择需要上传的文件个数filecount;
确定单元,用于根据CPU个数cpucount和文件个数filecount,按照预定规则确定所需建立的线程个数n;
上传单元,用于把准备上传的文件按文件大小均衡的原则分配给n个线程,n个线程同时工作,直至完成上传。
所述的基于多线程的文件上传的系统,其中,所述第一获取单元中通过读取注册表获取本机CPU的名称和频率,通过Windows API GetSystemInfo获取CPU个数cpucount以及CPU型号。
所述的基于多线程的文件上传的系统,其中,所述上传单元中把准备上传的文件按文件大小均衡的原则分配给n个线程具体包括:
排列子单元,用于先按文件大小做升序排列;
第一分配子单元,用于把前面n个文件分别分配给n个线程;
第二分配子单元,用于然后从文件序列的最后一个开始,把文件依次分配给当前线程文件中大小最小的一个线程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长沙裕邦软件开发有限公司,未经长沙裕邦软件开发有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410082305.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种户外电子围栏防护装置
- 下一篇:一种管路插卡计量开关的机械结构