下载实现方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机应用技术领域,特别涉及一种下载实现方法和装置。
【背景技术】
[0002]随着互联网应用技术的发展,互联网已经成为人们生活和工作的一部分,人们越来越习惯于通过访问互联网而获取到所需要的各种数据,例如,通过互联网络下载各种音视频数据、应用程序安装包等。
[0003]现有的下载实现方式大都是使用单线程或者多线程进行数据下载的,然而,一方面,对于单线程所进行的数据下载,由于仅有单线程执行数据下载操作,其下载速度将受到较大限制,进而无法快速的完成数据下载。
[0004]另一方面,即便采用多线程进行下载,也由于进行数据下载的多个线程之间是相互独立的,任意一个线程一旦出现问题都将导致其所负责的数据下载失败。
[0005]因此,在现有的下载实现方式中并无法同时兼顾较高的下载速度和较高的下载成功概率。
【发明内容】
[0006]基于此,有必要提供一种能同时兼顾较高下载速度和较高下载成功概率的下载实现方法。
[0007]此外,还有必要提供一种能同时兼顾较高下载速度和较高下载成功概率的下载实现装置。
[0008]为解决上述技术问题,将采用如下技术方案:
一种下载实现方法,包括:
侦听触发的数据下载操作,根据所述数据下载操作生成下载列表;
通过所述数据下载操作创建多个子线程;
根据所述下载列表为所述多个子线程分配下载任务,以使所述多个子线程分别执行所述下载任务。
[0009]在其中一个实施例中,所述通过所述数据下载操作创建多个子线程的步骤包括: 通过所述数据下载操作触发运行主线程;
由所述主线程根据预设的子线程数目创建多个子线程。
[0010]在其中一个实施例中,所述方法还包括:
控制所述主线程根据所述数据下载操作创建下载管理器;
通过所述下载管理器接收所述子线程反馈的消息,以根据所述消息对所述子线程进行动态控制。
[0011]在其中一个实施例中,所述通过所述下载管理器接收所述子线程反馈的消息,以根据所述消息对所述子线程进行动态控制的步骤包括:
由所述下载管理器接收执行所述下载任务的任一子线程发送的下载完成消息; 根据所述下载完成消息控制所述下载管理器关闭所述子线程,并启动一子线程,根据所述下载列表为启动的所述子线程分配下载任务。
[0012]在其中一个实施例中,所述由所述下载管理器接收执行所述下载任务的任一子线程发送的下载完成消息的步骤之后,所述通过所述下载管理器接收所述子线程反馈的消息,以根据所述消息对所述子线程进行动态控制的步骤还包括:
触发所述下载管理器检测执行所述下载任务的多个子线程是否出现异常,若为是,则获取异常子线程的下载任务,并重新创建子线程以恢复所述异常子线程的下载任务的执行。
[0013]一种下载实现装置,包括:
侦听模块,用于侦听触发的数据下载操作,根据所述数据下载操作生成下载列表;
创建模块,用于通过所述数据下载操作创建多个子线程;
任务处理模块,用于根据所述下载列表为所述多个子线程分配下载任务,以使所述多个子线程分别执行所述下载任务。
[0014]在其中一个实施例中,所述创建模块包括:
主线程运行单元,用于通过所述数据下载操作触发运行主线程;
子线程创建单元,用于由所述主线程根据预设的子线程数目创建多个子线程。
[0015]在其中一个实施例中,所述装置还包括:
下载管理器创建模块,用于控制所述主线程根据数据下载操作创建下载管理器;动态控制模块,用于通过所述下载管理器接收所述子线程反馈的消息,以根据所述消息对所述子线程进行动态控制。
[0016]在其中一个实施例中,所述动态控制模块包括:
第一消息接收单元,用于控制所述下载管理器接收执行所述下载任务的任一子线程发送的下载完成消息;
任务重分配单元,用于根据所述下载完成消息控制所述下载管理器关闭所述子线程,并启动一子线程,根据所述下载列表为启动的所述子线程分配下载任务。
[0017]在其中一个实施例中,所述动态控制模块包括:
异常检测单元,用于触发所述下载管理器检测执行所述下载任务的多个子线程是否出现异常,若为是,则通知异常恢复单元;
所述异常恢复单元用于获取异常子线程的下载任务,并重新创建子线程以恢复所述异常子线程的下载任务的执行。
[0018]由上述技术方案可知,将对数据下载操作进行侦听,在侦听得到触发的数据下载操作之后,将根据该数据下载操作生成相应的下载列表并创建多个子线程,根据生成的下载列表为创建的多个子线程分配下载任务,以使得创建的多个子线程分别执行为其所分配的下载任务,进而保证了较高的下载速度,并且由于执行下载任务的多个子线程是相互关联的,因此,将为数据下载提供了较高的下载成功率,进而实现较高下载速度和较高下载成功率的同时兼顾。
【附图说明】
[0019]图1是一个实施例中下载实现方法的流程图; 图2是图1中通过下载数据操作创建多个子线程的方法流程图;
图3是另一个实施例中下载实现方法的流程图;
图4是一个实施例中通过下载管理器接收子线程反馈的消息,以根据该消息对子线程进行动态控制的方法流程图;
图5是一个实施例中下载实现装置的结构示意框图;
图6是图5中创建模块的结构示意框图;
图7是另一个实施例中下载实现装置的结构示意框图;
图8是一个实施例中动态控制模块的结构示意框图;
图9是另一个实施例中动态控制模块的结构示意框图。
【具体实施方式】
[0020]体现本发明特征与优点的典型实施方式将在以下的说明中详细叙述。应理解的是本发明能够在不同的实施方式上具有各种的变化,其皆不脱离本发明的范围,且其中的说明及图示在本质上是当作说明之用,而非用以限制本发明。
[0021]如前所述,互联网络中各种数据的下载均需要借助各种下载工具实现数据的下载,例如,通过下载工具的触发运行访问各种音频视频网站,以下载其所提供的音频数据或者视频数据等,因此,特提出了一种下载实现方法,该方法可依赖于计算机程序,该计算机程序将运行于计算机系统之上,该计算机系统可运行于智能手机、平板电脑、个人电脑、笔记本电脑、学习机、家教机和点读机中。
[0022]在一个实施例中,具体的,该方法如图1所示,包括:
步骤110,侦听触发的数据下载操作,根据数据下载操作生成下载列表。
[0023]本实施例中,数据下载操作将用于触发执行数据的下载过程,其可以是用户针对各种数据下载入口触发的。例如,在数据下载网站中对各种下载链接触发的选定操作。
[0024]根据数据下载操作即可获知即将进行下载的数据,此时,将相应生成下载列表,该下载列表记录了每一条需要进行下载的数据。
[0025]步骤130,通过数据下载操作创建多个子线程。
[0026]本实施例中,数据下载的运行将触发创建多个子线程,该多个子线程均是用于执行下载列表中的数据下载操作的。
[0027]步骤150,根据下载列表为多个子线程分配下载任务,以使多个子线程分别执行下载任务。
[0028]本实施例中,根据下载列表中记录的第一条待下载数据,将依次划分成多个下载任务,以使得多个子线程将根据下载列表依次进行数据的下载,进而在多个子线程的作用下实现大量数据的同时下载,极大的提高了下载速度和下载效率。
[0029]进一步的,在本实施例中,如图2所示,该步骤130包括:
步骤131,通过数据下载操作触发运行主线程。
[0030]步骤133,由主线程根据预设的子线程数目创建多个子线程。
[0031]本实施例,主线程根据下载列表和数据下载操作生成子线程的基本信息和状态,并针对生成的基本信息和状态进行初始化,以实现多个子线程的创建。
[0032]其中,子线程的创建数目以是预先设置的,也可是根据当前的系统负载状况进行动态设置。而子线程的最大创建数目将是由所在机器性能决定的,以达到了性能的最大化。
[0033]在一个实施例中,如图3所示,如上所述的方法还包括:
步骤310,控制主线程根据数据下载操作创建下载管理器。
[0034]本实施例中,触发数据下载操作时将首先触发运行主线程,进而在主线程的作用下创建下载管理器,该下载管理器用于对多个子线程进行监管。
[0035]步骤330,通过下载管理器接收子线程反馈的消息,以根据该消息对子线程进行动态控制。
[0036]本实施例中,由下载管理器监管的多个子线程将主动向所述下载管理器反馈消息,进而使得下载管理器得以根据接收到了的消息对子线程进行关闭或者恢复等动态控制。
[0037]通过下载管理器对多个子线程进行统一监管,以监测子线程的运行是否正常,进而保证一定数目的子线程得以正常运行,迅速完成数据的下载。
[0038]进一步的,在本实施例中,如图4所示,该步骤330包括如下步骤:
步骤331,由下载管理器接收执行下载任务的任一子线程发送的下载完成消息。
[0039]本实施例中,执行下载任务的多个子线程中,任一子线程在完成下载任务时,都将主动向下载管理器发送下载完成消息,该下载完成消息包含了下载完成标识,下载管理器通过读取该下载完成标志即可获知该线程已经完成当前分配的下载任务。
[0040]步骤333,根据下载完成消息控制下载管理器关闭子线程,并启动一子线程,根据下载列表为启动的子线程分配下载任务。
[0041]本实施例中,下载管理器将关闭完成了下载任务的子线程,以启动新的子线程执行新的下载任务,继续进行数据的下载,进而快速完成下载列表中所需要进行下载的数据。
[0042]进一步的,在本实施例中,该步骤331之后,如上所述的步骤330还包括:
步骤335,触发下载管理器检测执行下载任务的多个子线程是否出现异常,若为是,则获取异常子线程的下载任务,并
重新创建子线程以恢复异常子线程的下载任务的执行,若为否,则不做任何处理。
[0043]本实施例中,下载管理器在接收任一子线程发下载完成消息时将对所有的子线程进行检测,以获知当前正在执行下载任务的子线程是否出现异常,若当前正在执行下载任务的任一子线程出现异常,则说明该子线程当前无法正常进行数据下载,因此需要进入步骤337对当前数据下载任务的执行。
[0044]定位多个子线程中发生异常的子线程,即异常子线程,获取该异常子线程当前所执行的下载任务,停掉该异常子线程,并创建新的子线程以恢复该下载任务的执行,进而保证了数据下载不受影响,仍然能够保证较快的下载速度和下载效率。
[0045]在一个实施例中,还相应地提供了一种下载实现装置,如图5所示,包括侦听模块510、创建模块530和任务处理模块550,其中:
侦听模块510,用于侦听触发的数据下载操作,根据数据下载操作生成下载列表。
[0046]本实施例中,数据下载操作将用于触发执行数据的下载过程,其可以是用户针对各种数据下载入口触发的。例如,在数据下载网站中对各种下载链接触发的选定操作。
[0047]侦听模块510根据数据下载操作即可获知即将进行下载的数据,此时,将相应生成下载列表,该下载列表将记录了每一条需要进行下载的数据。
[0048]创建模块530,用于通过数据下载操作创建多个子线程。
[0049]本实施例中,数据下载的运行将触发创建多个子线程,该多个子线程均是用于执行下载列表中的数据下载操作的。
[0050]任务处理模块550,用于根据下载列表为多个子线程分配下载任务,以使多个子线程分别执行下载任务。
[0051]本实施例中,任务处理模块550根据下载列表中记录的第一条待下载数据,将依次划分成多个下载任务,以使得多个子线程将根据下载列表依次进行数据的下载,进而在多个子线程的作用下实现大量数据的同时下载,极大的提高了下载速度和下载效率。
[0052]进一步的,在本实施例中,如图6所示,该创建模块530包括主线程运行单元531和子线程创建单元533。
[0053]主线程运行单元531,用于通过数据下载操作触发运行主线程。
[0054]子线程创建单元533,用于由所述主线程根据预设的子线程数目创建多个子线程。
[0055]本实施例,子线程创建单元533中主线程根据下载列表和数据下载操作生成子线程的基本信息和状态,并针对生成的基本信息和状态进行初始化,以实现多个子线程的创建。
[0056]其中,子线程的创建数目以是预先设置的,也可是根据当前的系统负载状况进行动态设置。而子线程的最大创建数目将是由所在机器性能决定的,以达到了性能的最大化。
[0057]在一个实施例中,如图7所示,如上所述的下载实现装置还包括下载管理器创建模块710和动态控制模块730,其中:
下载管理器创建模块710,用于控制主线程根据数据下载操作创建下载管理器。
[0058]本实施例中,下载管理器创建模块710触发数据下载操作时将首先触发运行主线程,进而在主线程的作用下创建下载管理器,该下载管理器用于对多个子线程进行监管。
[0059]动态控制模块730,用于通过下载管理器接收子线程反馈的消息,以根据该消息对子线程进行动态控制。
[0060]本实施例中,由下载管理器监管的多个子线程将主动向所述下载管理器反馈消息,进而使得动态控制模块730控制下载管理器根据接收到了的消息对子线程进行关闭或者恢复等动态控制。
[0061]动态控制模块730通过下载管理器对多个子线程进行统一监管,以监测子线程的运行是否正常,进而保证一定数目的子线程得以正常运行,迅速完成数据的下载。
[0062]进一步的,在本实施例中,如图8所示,该动态控制模块730包括第一消息接收单元731和任务重分配单元733。
[0063]第一消息接收单元731,用于控制下载管理器接收执行下载任务的任一子线程发送的下载完成消息。
[0064]本实施例中,执行下载任务的多个子线程中,任一子线程在完成下载任务时,都将主动向下载管理器发送下载完成消息,该下载完成消息包含了下载完成标识,第一消息接收单元731通过读取该下载完成标志即可获知该线程已经完成当前分配的下载任务。
[0065]任务重分配单元733,用于根据下载完成消息控制下载管理器关闭子线程,并启动一子线程,根据下载列表为启动的子线程分配下载任务。
[0066]本实施例中,任务重分配单元733控制下载管理器将关闭完成了下载任务的子线程,以启动新的子线程执行新的下载任务,继续进行数据的下载,进而快速完成下载列表中所需要进行下载的数据。
[0067]进一步的,在本实施例中,如图9所示,该动态控制模块730还包括异常检测单元735和异常恢复单元737,其中:
异常检测单元735,用于触发下载管理器检测执行下载任务的多个子线程是否出现异常,若为是,则通知异常恢复单元737,若为否,则不做任何处理。
[0068]本实施例中,异常检测单元735触发下载管理器在接收任一子线程发下载完成消息时将对所有的子线程进行检测,以获知当前正在执行下载任务的子线程是否出现异常,若当前正在执行下载任务的任一子线程出现异常,则说明该子线程当前无法正常进行数据下载,因此需要通知异常恢复单元737对当前数据下载任务的执行。
[0069]异常恢复单元737,用于获取异常子线程的下载任务,并重新创建子线程以恢复异常子线程的下载任务的执行。
[0070]本实施例中,异常恢复单元737定位多个子线程中发生异常的子线程,即异常子线程,获取该异常子线程当前所执行的下载任务,停掉该异常子线程,并创建新的子线程以恢复该下载任务的执行,进而根据下载列表顺序进行数据的下载,进而保证了数据下载不受影响,仍然能够保证较快的下载速度和下载效率。
[0071]虽然已参照几个典型实施方式描述了本发明,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本发明能够以多种形式具体实施而不脱离发明的精神或实质,所以应当理解,上述实施方式不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。
【主权项】
1.一种下载实现方法,其特征在于,包括: 侦听触发的数据下载操作,根据所述数据下载操作生成下载列表; 通过所述数据下载操作创建多个子线程; 根据所述下载列表为所述多个子线程分配下载任务,以使所述多个子线程分别执行所述下载任务。2.根据权利要求1所述的下载实现方法,其特征在于,所述通过所述数据下载操作创建多个子线程的步骤包括: 通过所述数据下载操作触发运行主线程; 由所述主线程根据预设的子线程数目创建多个子线程。3.根据权利要求2所述的下载实现方法,其特征在于,所述方法还包括: 控制所述主线程根据所述数据下载操作创建下载管理器; 通过所述下载管理器接收所述子线程反馈的消息,以根据所述消息对所述子线程进行动态控制。4.根据权利要求3所述的下载实现方法,其特征在于,所述通过所述下载管理器接收所述子线程反馈的消息,以根据所述消息对所述子线程进行动态控制的步骤包括: 由所述下载管理器接收执行所述下载任务的任一子线程发送的下载完成消息; 根据所述下载完成消息控制所述下载管理器关闭所述子线程,并启动一子线程,根据所述下载列表为启动的所述子线程分配下载任务。5.根据权利要求4所述的下载实现方法,其特征在于,所述由所述下载管理器接收执行所述下载任务的任一子线程发送的下载完成消息的步骤之后,所述通过所述下载管理器接收所述子线程反馈的消息,以根据所述消息对所述子线程进行动态控制的步骤还包括: 触发所述下载管理器检测执行所述下载任务的多个子线程是否出现异常,若为是,则获取异常子线程的下载任务,并重新创建子线程以恢复所述异常子线程的下载任务的执行。6.一种下载实现装置,其特征在于,包括: 侦听模块,用于侦听触发的数据下载操作,根据所述数据下载操作生成下载列表; 创建模块,用于通过所述数据下载操作创建多个子线程; 任务处理模块,用于根据所述下载列表为所述多个子线程分配下载任务,以使所述多个子线程分别执行所述下载任务。7.根据权利要求6所述的下载实现装置,其特征在于,所述创建模块包括: 主线程运行单元,用于通过所述数据下载操作触发运行主线程; 子线程创建单元,用于由所述主线程根据预设的子线程数目创建多个子线程。8.根据权利要求7所述的下载实现装置,其特征在于,所述装置还包括: 下载管理器创建模块,用于控制所述主线程根据数据下载操作创建下载管理器;动态控制模块,用于通过所述下载管理器接收所述子线程反馈的消息,以根据所述消息对所述子线程进行动态控制。9.根据权利要求8所述的下载实现装置,其特征在于,所述动态控制模块包括: 第一消息接收单元,用于控制所述下载管理器接收执行所述下载任务的任一子线程发送的下载完成消息; 任务重分配单元,用于根据所述下载完成消息控制所述下载管理器关闭所述子线程,并启动一子线程,根据所述下载列表为启动的所述子线程分配下载任务。10.根据权利要求8所述的下载实现装置,其特征在于,所述动态控制模块包括:异常检测单元,用于触发所述下载管理器检测执行所述下载任务的多个子线程是否出现异常,若为是,则通知异常恢复单元; 所述异常恢复单元用于获取异常子线程的下载任务,并重新创建子线程以恢复所述异常子线程的下载任务的执行。
【专利摘要】本发明提供了一种下载实现方法,所述方法包括:侦听触发的数据下载操作,根据所述数据下载操作生成下载列表;通过所述数据下载操作创建多个子线程;根据所述下载列表为所述多个子线程分配下载任务,以使所述多个子线程分别执行所述下载任务。此外,还提供了一种与该方法匹配的下载实现装置。上述下载实现方法和装置能同时兼顾较高下载速度和较高下载成功概率。
【IPC分类】G06F9/48, G06F9/445
【公开号】CN104881307
【申请号】CN201510250620
【发明人】王文欢
【申请人】广东小天才科技有限公司
【公开日】2015年9月2日
【申请日】2015年5月15日
转载请注明原文地址:https://www.famiwei.com/read-8138768.html