批量文件的并行传输方法、装置及存储介质与流程

文档序号:15233046发布日期:2018-08-21 19:54阅读:175来源:国知局

本发明涉及网络技术领域,特别是涉及一种批量文件的并行传输方法、装置及存储介质。



背景技术:

由于互联网和移动互联网的快速发展,批量传输作为网络通信的基础应用得到广泛的使用。为充分利用cpu资源,提高了传输效率,批量文件传输多采用多线程方式。但由于线程资源不足,在待传文件数目较多的情况下,部分文件的等待时间过长。



技术实现要素:

为了克服上述缺陷,本发明要解决的技术问题是提供一种批量文件的并行传输方法、装置及存储介质,用以解决由于线程资源不足,在待传文件数目较多的情况下,部分文件的等待时间过长的问题。

为解决上述技术问题,本发明实施例中的一种批量文件的并行传输方法,包括:

调用预先申请的多个线程,以使所述多个线程从待传文件列表中获取批量文件的文件块;

通过各个线程传输所述文件块。

可选地,所述调用预先申请的多个线程,以使所述多个线程从待传文件列表中获取批量文件的文件块之前,包括:

将批量文件中的每个文件切片成多个文件块;

将各个文件的文件块存储到所述待传文件列表中。

可选地,所述将批量文件中的每个文件切片成多个文件块,包括:

将所述批量文件中每个文件切片成多个大小相同的文件块。

可选地,所述调用预先申请的多个线程,以使所述多个线程从待传文件列表中获取批量文件的文件块,还包括:

同一时间,每个线程从一个文件中获取文件块。

可选地,所述调用预先申请的多个线程,以使所述多个线程从待传文件列表中获取批量文件的文件块,包括:针对任意一个线程:

调用该线程,并根据预设的文件传输配额,以使该线程从待传文件列表中获取一个文件的文件块。

可选地,所述调用该线程,并根据预设的文件传输配额,以使该线程从待传文件列表中获取一个文件的文件块之前,包括:针对任意一个文件:

根据该文件的未传输部分大小,设置该文件的文件传输配额。

可选地,该文件的文件传输配额和该文件的未传输部分大小成正比例关系。

可选地,所述根据该文件的未传输部分大小,设置该文件的文件传输配额,包括:

确定该文件的未传输部分大小;

根据该文件的未传输部分大小和所述文件块的预设大小,设置该文件的文件传输配额。

为解决上述技术问题,本发明实施例中的一种批量文件的并行传输装置,包括存储器和处理器;所述存储器存储有批量文件的并行传输计算机程序,所述处理器执行所述计算机程序,以实现如上任意一项所述方法的步骤。

为解决上述技术问题,本发明实施例中的一种计算机可读存储介质,存储有批量文件的并行传输计算机程序,所述计算机程序被至少一个处理器执行时,以实现如上任意一项所述方法的步骤。

本发明有益效果如下:

本发明各个实施例通过调用预先申请的多个线程,以使所述多个线程从待传文件列表中获取批量文件的文件块;并通过各个线程传输所述文件块,从而将申请线程资源的单位从文件转化成文件块,从而有效解决由于线程资源不足,在待传文件数目较多的情况下,部分文件的等待时间过长的问题,进而更加公平的分配线程资源。

附图说明

图1是本发明实施例中一种批量文件的并行传输方法的流程图;

图2是本发明实施例中可选地批量文件的并行传输效果示意图;

图3是本发明实施例中根据文件传输配额进行批量文件的并行传输效果示意图;

图4是本发明实施例中一种批量文件的并行传输装置的结构示意图。

具体实施方式

为了解决现有技术的问题,本发明提供了一种批量文件的并行传输方法、装置及存储介质,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不限定本发明。

在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。

使用用于区分元件的诸如“第一”、“第二”等前缀仅为了有利于本发明的说明,其本身没有特定的意义。

实施例一

本发明实施例提供一种批量文件的并行传输方法,如图1所示,所述方法包括:

s101,调用预先申请的多个线程,以使所述多个线程从待传文件列表中获取批量文件的文件块;

s102,通过各个线程传输所述文件块。

本发明实施例通过调用预先申请的多个线程,以使所述多个线程从待传文件列表中获取批量文件的文件块;并通过各个线程传输所述文件块,从而将申请线程资源的单位从文件转化成文件块,从而有效解决由于线程资源不足,在待传文件数目较多的情况下,部分文件的等待时间过长的问题,进而更加公平的分配线程资源。

在本发明实施例中,可选地,所述调用预先申请的多个线程,以使所述多个线程从待传文件列表中获取批量文件的文件块之前,包括:

将批量文件中的每个文件切片成多个文件块;

将各个文件的文件块存储到所述待传文件列表中。

其中,所述将批量文件中的每个文件切片成多个文件块,可选地,包括:

将所述批量文件中每个文件切片成多个大小相同的文件块。

在本发明实施例中,可选地,所述调用预先申请的多个线程,以使所述多个线程从待传文件列表中获取批量文件的文件块,还包括:

同一时间,每个线程从一个文件中获取文件块。

例如,如图2所示,需要传输的文件包括文件a、b、c、d、e,线程资源包括三个线程1、2、3。

传输过程可以包括:

步骤11、将每个文件按照一定大小切分成文件块,每个文件需要按照相同文件块大小进行切分,至于文件块大小需要根据工程实践来确定;

步骤12、每个线程从待传文件列表中主动竞争需要传输的文件块,;

步骤13、每个线程传输竞争得到的文件块;

步骤14、传输完成的文件块从待传文件列表中删除。

如图2所示,文件块的传输顺序如箭头所示,每个文件在一定时间获得的线程资源基本上是公平的。虽然把文件切分块,但是同一时间一个文件只能由一个线程进行传输,从而有效避免同一个文件被两个线程同时写。

在本发明实施例中,可选地,所述调用预先申请的多个线程,以使所述多个线程从待传文件列表中获取批量文件的文件块,包括:针对任意一个线程:

调用该线程,并根据预设的文件传输配额,以使该线程从待传文件列表中获取一个文件的文件块。

在本发明实施例中,可选地,所述调用该线程,并根据预设的文件传输配额,以使该线程从待传文件列表中获取一个文件的文件块之前,包括:针对任意一个文件:

根据该文件的未传输部分大小,设置该文件的文件传输配额。

其中,该文件的文件传输配额和该文件的未传输部分大小成正比例关系。

其中,所述根据该文件的未传输部分大小,设置该文件的文件传输配额,可选地,包括:

确定该文件的未传输部分大小;

根据该文件的未传输部分大小和所述文件块的预设大小,设置该文件的文件传输配额。

本发明实施例进一步通过文件配额传输批量文件,不仅很好解决公平占有线程资源,减少文件等待时间,同时有效减少切换成本。

例如,每个线程传输完一个文件块,切换到新的文件时需要重新打开新的文件,并跳转到待传位置读取文件块进行传输,传输完还得关闭文件,这些操作相对线程分组方案增加了很多的切换成本。而且文件越大切换次数越多,而本发明实施例中通过文件传输配额,确定线程一次传输文件块的数量,并且保证文件越大,配额就越多,从而有效减少切换成本。

本发明实施例中,根据该文件的未传输部分大小和所述文件块的预设大小,通过下式设置该文件的文件传输配额:

其中,filequota为计算出来的文件传输配额数,它是一个整数,所以用箭头表示向上取整;也就是说计算出来的结果有小数不够一个配额,按照一个配额分配处理。filesize表示剩余文件的大小,即该文件未传输部分大小,这样文件在传输过程中得到配额是动态改变的,这使得线程资源的分配动态保持公平,fileblocksize表示文件块的预设大小。x是对数底,这个数值用来调整文件传输下降速度的,例如可以设置成2。

使用了动态文件传输配额后,文件传输的过程包括:

步骤21,根据上述公式计算结果,线程传输了a文件的0、1块,b文件的0块,c文件的0、1、2块,d文件的0、1、2、3块,e文件的0块,文件e传输完成;

步骤22,根据上述公式计算结果,线程传输了a文件的2块,b文件的1块,c文件的3块,d文件的4、5、6块,文件a、b传输完成;

步骤23,根据上述公式计算结果,线程传输了c文件的4块,d文件的7块,文件c传输完成;

步骤24,根据上述公式计算结果,线程传输了d文件的8块,文件d传输完成;

从上述传输过程看,文件传输配额随着文件大小动态变化,文件越大配额越多,反之越少,通过引入配额可以有效的减少文件传输切换成本,同时最大程度上保留了文件切片带来公平占有线程资源的目标。

在实际应用中,本发明实施例通过文件传输配额和文件分块可以充分的利用线程资源,有效的减少线程闲置的问题,并有效减少切换成本。在保证传输公平性的同时,提高传输效率。并通过文件传输配额机制的引用进一步提高传输效率。

实施例二

本发明实施例提供一种批量文件的并行传输装置,如图4所示,所述装置包括存储器和处理器;所述存储器存储有批量文件的并行传输计算机程序,所述处理器执行所述计算机程序,以实现如实施例一中任意一项所述方法的步骤。

例如,所述处理器执行所述计算机程序,以实现如下步骤:

调用预先申请的多个线程,以使所述多个线程从待传文件列表中获取批量文件的文件块;

通过各个线程传输所述文件块。

在本发明实施例中,可选地,所述调用预先申请的多个线程,以使所述多个线程从待传文件列表中获取批量文件的文件块之前,包括:

将批量文件中的每个文件切片成多个文件块;

将各个文件的文件块存储到所述待传文件列表中。

在本发明实施例中,可选地,所述将批量文件中的每个文件切片成多个文件块,包括:

将所述批量文件中每个文件切片成多个大小相同的文件块。

在本发明实施例中,可选地,所述调用预先申请的多个线程,以使所述多个线程从待传文件列表中获取批量文件的文件块,还包括:

同一时间,每个线程从一个文件中获取文件块。

在本发明实施例中,可选地,所述调用预先申请的多个线程,以使所述多个线程从待传文件列表中获取批量文件的文件块,包括:针对任意一个线程:

调用该线程,并根据预设的文件传输配额,以使该线程从待传文件列表中获取一个文件的文件块。

在本发明实施例中,可选地,所述调用该线程,并根据预设的文件传输配额,以使该线程从待传文件列表中获取一个文件的文件块之前,包括:针对任意一个文件:

根据该文件的未传输部分大小,设置该文件的文件传输配额。

在本发明实施例中,可选地,该文件的文件传输配额和该文件的未传输部分大小成正比例关系。

在本发明实施例中,可选地,所述根据该文件的未传输部分大小,设置该文件的文件传输配额,包括:

确定该文件的未传输部分大小;

根据该文件的未传输部分大小和所述文件块的预设大小,设置该文件的文件传输配额。

实施例三

本发明实施例提供一种计算机可读存储介质,所述存储介质存储有批量文件的并行传输计算机程序,所述计算机程序被至少一个处理器执行时,以实现如实施例一中任意一项所述方法的步骤。

本发明实施例中计算机可读存储介质可以是ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、移动硬盘、cd-rom或者本领域已知的任何其他形式的存储介质。可以将一种存储介质藕接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息;或者该存储介质可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路中。

实施例二和实施例三在具体实现时,可以参阅实施例一,也具有相应的技术效果。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1