一种多任务下载的方法及终端的制作方法

文档序号:6444176阅读:240来源:国知局
专利名称:一种多任务下载的方法及终端的制作方法
技术领域
本发明涉及浏览器任务下载技术领域,尤其涉及一种电视机等终端上基于 javascript扩展实现的多任务下载的方法及终端。
背景技术
目前,浏览器已广泛应用于电视机,在电视机上通过浏览器浏览网页下载文件,已成为电视机下载文件的主要手段。但是,传统的电视机通过浏览器下载文件均属于单任务下载,而且下载任务与浏览器处于同一个进程,若需要从电视机的浏览器上下载多个文件,则只能等待当前下载任务完成后,再启动下一个下载任务,势必影响了网页的整体性能,浪费了 CPU资源,而且由于浏览器耗时、耗能,影响了浏览器性能,导致用户浏览网页时的体验效果变差,给用户在操作上带来诸多不便。

发明内容
本发明的主要目的是提供一种多任务下载的方法及终端,旨在实现浏览器的多任务并发下载,提高用户体验效果。为了达到上述目的,本发明提出一种多任务下载的方法,包括浏览器启动,在浏览器中加载用于下载管理的动态库;通过所述浏览器的网页接收用户的下载指令,并通过所述浏览器的javascript 扩展接ロ调用所述动态库的相应函数接ロ,在共享内存中写入数据;所述共享内存由所述浏览器和下载进程共同创建;启动所述下载进程,从所述共享内存中读取数据,并根据读取的数据进行多任务下载。优选地,所述共享内存中的数据包括控制标志位以及下载信息;所述下载信息至少包括以下一个下载任务个数、下载地址、下载完成后的保存路、子进程标识。优选地,所述启动下载进程,从所述共享内存中读取数据,并根据读取的数据进行多任务下载的步骤包括父进程启动下载进程,并读取所述共享内存中的控制标志位;当所述控制标志位为第一预定值吋,所述父进程读取所述共享内存中的下载信息,并根据所述下载信息,创建至少两个用于下载任务的子进程;通过所述子进程进行多任务下载。优选地,所述通过子进程进行多任务下载的步骤包括所述子进程创建各自的下载子线程;并通过主线程控制所述子线程执行相应下载任务。优选地,该方法还包括在多任务下载过程中,通过所述浏览器的网页接收用户的下载更新指令;
通过所述浏览器的javascript扩展接ロ调用所述动态库的相应函数接ロ,在所述共享内存中更新控制标志位的值并写入下载状态改变的子进程标识。优选地,所述通过子进程进行多任务下载的步骤还包括所述子进程的主线程监听所述共享内存中的控制标志位;当所述共享内存中的控制标志位为非所述第一预定值时,获取所述共享内存中下载状态改变的子进程标识;比较所述下载状态改变的子进程标识与所述主线程当前的子进程标识;若两者不一致,则保持当前子线程的下载进程的状态;否则所述主线程根据所述共享内存中的控制标志位,控制当前子线程的下载任务的状态。本发明还提出ー种多任务下载的终端,包括浏览器模块及任务下载模块,其中所述浏览器模块包括加载单元,用于在浏览器启动时,在所述浏览器中加载用于下载管理的动态库;接收单元,用于通过所述浏览器的网页接收用户的下载指令;写入単元,用于通过所述浏览器的javascript扩展接ロ调用所述动态库的相应函数接ロ,在共享内存中写入数据;所述共享内存由所述浏览器和下载进程共同创建;所述任务下载模块,用于启动所述下载进程,从所述共享内存中读取数据,并根据读取的数据进行多任务下载。优选地,所述任务下载模块包括 父进程单元,用于启动下载进程,并读取所述共享内存中的控制标志位;当所述控制标志位为第一预定值时,读取所述共享内存中的下载信息,并根据所述下载信息,创建至少两个用于下载任务的子进程。子进程单元,用于通过所述子进程进行多任务下载。优选地,所述子进程単元包括创建单元,用于创建下载任务的子线程;子线程单元,用于执行所述子线程对应的下载任务;主线程单元,用于控制所述子线程单元执行相应下载任务。优选地,所述接收単元,还用于在多任务下载过程中,通过所述浏览器的网页接收用户的下载更新指令;所述写入単元,还用于通过所述浏览器的javascript扩展接ロ调用所述动态库的相应函数接ロ,在所述共享内存中更新控制标志位的值并写入下载状态改变的子进程标识。优选地,所述主线程单元还用于监听所述共享内存中的控制标志位;当所述共享内存中的控制标志位为非所述第一预定值时,获取所述共享内存中下载状态改变的子进程标识;比较所述下载状态改变的子进程标识与所述主线程当前的子进程标识;若两者不一致,则保持当前子线程的下载进程的状态;否则,根据所述共享内存中的控制标志位,控制当前子线程的下载任务的状态。本发明提出的一种多任务下载的方法及终端,基于电视机等终端浏览器的 javascript扩展,将浏览器下载任务与浏览器独立起来,使浏览器能够多任务并发下载,在下载的过程中,可人为控制某个正在下载状态,比如暂停、取消、继续等动作,提高了 CPU 资源利用率及浏览器性能,同时具有高效、人性化等特点,使得用户具有良好的体验性。


图1是本发明一种多任务下载的方法第一实施例的流程示意图;图2是本发明一种多任务下载的方法第一实施例中启动下载进程,从共享内存中读取数据,并根据读取的数据进行多任务下载的流程示意图;图3是本发明一种多任务下载的方法第二实施例的流程示意图;图4是本发明一种多任务下载的方法第二实施例中通过子进程进行多任务下载的流程示意图;图5是本发明一种多任务下载的终端第一实施例的结构示意图;图6是本发明一种多任务下载的终端第一实施例中浏览器模块的结构示意图;图7是本发明一种多任务下载的终端第一实施例中任务下载模块的结构示意图;图8是本发明一种多任务下载的终端第一实施例中子进程单元的结构示意图。本发明目的的实现、功能特点及优点将结合实施例,參照附图做进ー步说明。
具体实施例方式本发明的主要解决方案是基于电视机等终端浏览器的javascript扩展,把浏览器下载任务与浏览器独立起来,使浏览器能够多任务并发下载,充分利用CPU资源,提高用户体验效果。本发明中终端可以为安装有浏览器的电视机、电脑等,以下各实施例以终端为电视机为例进行说明。电视机中的浏览器和任务下载进程间的通信通过共享内存的方式进行,浏览器与任务下载进程之间的同步和互斥通过信号量方式的加锁和解锁来实现。当用户操作网页上的按钮时,会调用浏览器内核javascript扩展接ロ,javascript扩展接ロ调用动态库相应的函数接ロ,对共享内存进行写入操作,其中,所述共享内存由所述浏览器和下载进程共同创建;下载进程通过不断读取共享内存的数据,根据读到的不同数据进行相应的处理,当读到需要多任务下载吋,则启动多个下载任务子进程,从而实现多任务下载。具体地,请參照图1,图1为本发明一种多任务下载的方法第一实施例的流程示意图。本发明第一实施例提出的一种多任务下载的方法,包括步骤S101,浏览器启动,在浏览器中加载用于下载管理的动态库;步骤S102,通过浏览器的网页接收用户的下载指令,并通过浏览器的javascript 扩展接ロ调用动态库的相应函数接ロ,在共享内存中写入数据;上述步骤SlOl及步骤S102中,以电视机为例,当用户打开电视机的主菜单进入浏览器的下载页面吋,浏览器启动并加载用于下载管理的动态库(libchdownloadmanager. so)。这些阵具有相应的操作函数,比如downIoadmanager resume> downloadmanager pause、 downloaamanager_cancel> aownloadmanager_downloadtasklist、 downloadmanager_getTaskList,上述各函数分别对应的下载状态为继续、停止、取消、 下载任务列表、获取任务列表。如果浏览器进入下载页面,则浏览器的下载页面自动调用CHdownloadmanagerJnitialize函数,该函数的功能是创建共享内存和信号量。浏览器的下载网页对这些函数的调用必须经过浏览器内核的javascript扩展接 ロ。当用户操作浏览器网页上的按钮时,浏览器的下载网页会调用浏览器内核javascript 扩展接ロ,javascript扩展接ロ则调用下载管理的动态库相应的函数接ロ,所述动态库则对共享内存进行写入操作。如上所述,电视机中的浏览器和任务下载进程间的通信通过共享内存的方式进行,该共享内存由浏览器与下载进程共同创建。当用户进入浏览器的下载页面吋,下载进程启动后,创建共享内存和信号量。在浏览器侧,当用户进入浏览器的下载页面吋,浏览器的下载页面自动调用 CHdownloadmanager_Initialize函数,创建共享内存和信号量。比如,当用户点击网页的选择按钮,浏览器将该下载加到任务列表,当用户再按下载按钮时,浏览器的下载网页则通过doWnloadmanager_doWnloadtasklist函数把下载任务以json数据格式传下来,通过解析json得到相应的数据,浏览器再将此数据写到共享内存。上述共享内存中的数据包括控制标志位以及下载信息;其中下载信息至少包括以下的ー个下载任务个数、下载地址、下载完成后的保存路径、子进程标识(AppKey)。控制标志位的值可以预先设定,比如可以设定控制标志位的值为0、1、2、3、4、5 等,其中各值的含义可以采用如下设定0表示共享内存为空,1表示下载;2表示暂停;3表示取消;4表示继续;5表示退出等。子进程标识是各个下载子进程的标识,当用户有多个下载任务时,下载进程的父进程将根据共享内存中的下载信息创建与各子进程标识对应的子进程,各子进程再执行各自的下载任务。步骤S103,启动下载进程,从共享内存中读取数据,并根据读取的数据进行多任务下载。当用户进入浏览器的下载页面,下载进程的父进程不断监听共享内存的数据。当用户操作浏览器网页上的按钮吋,下载进程的父进程开始读取共享内存中的控制标志位。 如果读到的控制标志位为1,说明用户有下载请求,父进程则会进ー步读取共享内存的下载信息,根据下载信息,父进程通过fork函数创建下载的子进程,每个子进程对应ー个共享内存的下载信息中的子进程标识。以两个下载任务为例,若父进程监测到共享内存的控制标志位为1,则进ー步读取共享内存的下载信息(例如下载任务个数、下载地址、下载完后保存的路径、子进程标识等信息),父进程通过fork函数创建出两个下载的子进程,各子进程通过pthreacLcreate函数创建真正的下载子线程,该下载子线程会调用Curldownload函数开始下载。具体实施过程中,如图2所示,上述步骤S103包括步骤S1031,父进程启动下载进程,并读取共享内存中的控制标志位;步骤S1032,当控制标志位为第一预定值吋,父进程读取共享内存中的下载信息, 井根据下载信息,创建至少两个用于下载任务的子进程;其中,第一预定值为上述设定的下载按钮对应的值1。步骤S1033,通过子进程进行多任务下载。
子进程创建各自的下载子线程;并通过主线程控制子线程进行相应任务下载。本实施例基于电视机浏览器的javascript扩展,把浏览器下载任务与浏览器独立起来,使浏览器能够多任务并发下载,提高CPU资源利用率及浏览器性能,同时使得用户具有良好体验效果。如图3所示,本发明第二实施例提出的一种多任务下载的方法,在上述实施例的基础上,在上述步骤S103之后进ー步还包括步骤S104,在多任务下载过程中,通过浏览器的网页接收用户的下载更新指令;步骤S105,通过浏览器的javascript扩展接ロ调用动态库的相应函数接ロ,在共享内存中更新控制标志位的值并写入下载状态改变的子进程标识。本实施例与上述实施例的区别在于,本实施例在实现多任务并行下载的同吋,在下载过程中,还可以根据用户需要,改变当前下载状态,比如取消、暂停、继续等操作。当某个子进程的下载任务状态改变吋,浏览器根据用户的下载更新指令更新共享内存中的数据,包括改变控制标志位的值以及写入改变后的子进程的标识。后续下载进程将根据共享内存中更新后的控制标志位及下载状态改变后的子进程标识控制相应的子进程的下载状态。浏览器的下载网页通过每隔一定时间调用downloadmanageLgetTaskList获取下载任务的状态,该函数通过不断读取已经下载文件的大小等信息并打包转换成json数据格式,下载网页解析该json包,获取各子进程的下载状态。如果用户按了暂停取消继续等按钮,浏览器的下载网页则调用 libchdownloadmanager. so相应的函数接ロ,将相应的控制标志位(比如2、3、4)和下载状态改变的子进程标识(AppKey)写入共享内存。下载的子进程不断共享上述共享内存的控制标志位和AppKey,通过主线程不断监听共享内存,并控制下载状态的改变。如果用户需要改变某一子进程下载任务的状态,主线程通过读取共享内存的控制标志位和AppKey (子进程标识),并把读到的AppKey和自身的 AppKey比较,如果两者比较相同,即表明是自身下载任务的AppKey,说明用户要改变该下载任务的状态,主线程则调用相应的函数来控制子线程的下载任务的状态,并对共享内存进行清0,否则返回继续读取共享内存,以此类推。直到全部下载任务完成,子进程全部退出,整个下载结束。具体地,如图4所示,在本实施例中,通过子进程进行多任务下载的步骤还包括步骤S10331,子进程的主线程监听共享内存中的控制标志位;步骤S10332,当共享内存中的控制标志位为非第一预定值时,获取共享内存中下载状态改变的子进程标识;步骤S10333,比较下载状态改变的子进程标识与主线程当前的子进程标识;若两者不一致,则进入步骤S10334 ;否则,进入步骤S10335 ;步骤S10334,保持当前子线程的下载进程的状态;步骤S10335,主线程根据共享内存中的控制标志位,控制当前子线程的下载任务的状态。以两个下载任务为例,对本实施例技术方案进行详细说明当下载进程启动后,若父进程监测到共享内存的控制标志位为1,则进ー步读取共享内存的下载信息(例如下载任务个数、下载地址、下载完后保存的路径、AppKey等信息), 父进程通过fork函数创建出两个下载的子进程,各子进程通过pthreacLcreate函数创建真正的下载子线程,该下载子线程会调用Curldownload函数开始下载。在下载过程中,若用户对其中一个子进程选择了改变下载状态的按键(比如取消按键),各子进程的主线程通过监听共享内存中的控制标志位获知,共享内存中的控制标志位已经更新为3,则从共享内存中获取下载状态改变的子进程标识,判断该下载状态改变的子进程标识是否为自身子进程的标识,若是,则表明用户需要改变自身子进程的下载状态, 该下载状态改变的子进程的主线程将对应该控制标志位3,控制子线程取消当前子进程的下载状态。以此类推,直到所有的子进程下载过程处理(包括下载、暂停取消等)完毕。本实施例基于电视机浏览器的javascript扩展,使浏览器能够多任务并发下载, 在任务下载的过程中,可以人为的控制某个正在下载状态,比如暂停、取消、继续等动作。 该方案把浏览器下载任务与浏览器独立起来,真正实现多任务下载,从而充分利用CPU资源,具有高效、人性化等特点,使得用户有良好体验性。如图5所示,本发明第一实施例提出ー种多任务下载的终端,包括浏览器模块 501及任务下载模块502,其中浏览器模块501,用于在浏览器启动时,在浏览器中加载用于下载管理的动态库; 通过浏览器的网页接收用户的下载指令,并通过浏览器的javascript扩展接ロ调用所述动态库的相应函数接ロ,在共享内存中写入数据,其中,所述共享内存由所述浏览器和下载进程共同创建;任务下载模块502,用于启动下载进程,从共享内存中读取数据,并根据读取的数据进行多任务下载。以电视机为例,当用户打开电视机的主菜单进入浏览器的下载页面吋,浏览器通过浏览器模块501启动并加载用于下载管理的动态库(libchdownloadmanager. so)。这些库具有相应的操作函数,比如down Ioadmanager resume λ down loadmanager pause、 downloadmanager_cancelλ downloadmanager_downloadtaski1st、 downloadmanager_ getTaskList,上述各函数分别对应的下载状态为继续、停止、取消、下载任务列表、获取任务列表。如果浏览器进入下载页面,则浏览器的下载页面自动调用CHdownloadmanaget Initialize函数,该函数的功能是创建共享内存和信号量。浏览器的下载网页对这些函数的调用必须经过浏览器内核的javascript扩展接 ロ。当用户操作浏览器网页上的按钮时,浏览器的下载网页会调用浏览器内核javascript 扩展接ロ,javascript扩展接ロ则调用动态库相应的函数接ロ,动态库则对共享内存进行写入操作。当用户有多任务下载请求时,任务下载模块502启动下载进程,从共享内存中读取数据,并根据读取的数据进行多任务下载。电视机中的浏览器和任务下载进程间的通信通过共享内存的方式进行,该共享内存由浏览器与下载进程共同创建。当用户进入浏览器的下载页面吋,下载进程启动后,创建共享内存和信号量。在浏览器侧,当用户进入浏览器的下载页面吋,浏览器的下载页面自动调用 CHdownloadmanager Initialize函数,创建共享内存和信号量。
比如,当用户点击网页的选择按钮,浏览器将该下载加到任务列表,当用户再按下载按钮时,浏览器的下载网页则通过doWnloadmanager_doWnloadtasklist函数把下载任务以json数据格式传下来,通过解析json得到相应的数据,浏览器再将此数据写到共享内存。上述共享内存中的数据包括控制标志位以及下载信息;其中下载信息至少包括以下ー个下载任务个数、下载地址、下载完成后的保存路径、子进程标识(AppKey)。控制标志位的值可以预先设定,比如可以设定控制标志位的值为0、1、2、3、4、5 等,其中各值的含义可以采用如下设定0表示共享内存为空,1表示下载;2表示暂停;3表示取消;4表示继续;5表示退出等。子进程标识是各个下载子进程的标识,当用户有多个下载任务时,下载进程的父进程将根据共享内存中的下载信息创建与各子进程标识对应的子进程,各子进程再执行各自的下载任务。当用户进入浏览器的下载页面,下载进程的父进程不断监听共享内存的数据。当用户操作浏览器网页上的按钮吋,下载进程的父进程开始读取共享内存中的控制标志位。 如果读到的控制标志位为1,说明用户有下载请求,父进程则会进ー步读取共享内存的下载信息,根据下载信息,父进程通过fork函数创建下载的子进程,每个子进程对应ー个共享内存的下载信息中的子进程标识。以两个下载任务为例,若父进程监测到共享内存的控制标志位为1,则进ー步读取共享内存的下载信息(下载任务个数、下载地址、下载完后保存的路径、AppKey等信息),父进程通过fork函数创建出两个下载的子进程,各子进程通过pthreacLcreate函数创建真正的下载子线程,该下载子线程会调用Curldownload函数开始下载。通过上述过程可以实现两个或多个任务并行下载。进ー步的,本实施例在实现多任务并行下载的同吋,在下载过程中,还可以根据用户需要,改变当前下载状态,比如取消、暂停、继续等操作。在浏览器侧,当某个子进程的下载任务状态改变吋,浏览器模块501根据用户的下载更新指令更新共享内存中的数据,包括改变控制标志位的值以及写入改变后的子进程的标识。后续任务下载模块502的下载进程将根据共享内存中更新后的控制标志位及下载状态改变后的子进程标识控制相应的子进程的下载状态。浏览器的下载网页通过每隔一定时间调用downloadmanageLgetTaskList获取下载任务的状态,该函数通过不断读取已经下载文件的大小等信息并打包转换成json数据格式,下载网页解析该json包,获取各子进程的下载状态。如果用户按了暂停取消继续等按钮,浏览器的下载网页则调用 libchdownloadmanager. so相应的函数接ロ,将相应的控制标志位(比如2、3、4)和下载状态改变的子进程标识(AppKey)写入共享内存。下载的子进程不断共享上述共享内存的控制标志位和AppKey,通过主线程不断用来监听共享内存,并控制下载状态的改变。如果用户需要改变某一子进程下载任务的状态, 主线程通过读取共享内存的控制标志位和AppKey,并把读到的AppKey和自身的AppKey比较,如果两者比较相同,即表明是自身下载任务的AppKey,说明用户要改变该下载任务的状态,主线程则调用相应的函数来控制子线程的下载任务的状态,并对共享内存进行清0,否则返回继续读取共享内存,以此类推。直到全部下载任务完成,子进程全部退出,整个下载以两个下载任务为例,对本实施例技术方案进行详细说明当下载进程启动后,若父进程监测到共享内存的控制标志位为1,则进ー步读取共享内存的下载信息(例如下载任务个数、下载地址、下载完后保存的路径、AppKey等信息), 父进程通过fork函数创建出两个下载的子进程,各子进程通过pthreacLcreate函数创建真正的下载子线程,该下载子线程会调用Curldownload函数开始下载。在下载过程中,若用户对其中一个子进程选择了改变下载状态的按键(比如取消按键),各子进程的主线程通过监听共享内存中的控制标志位获知,共享内存中的控制标志位已经更新为3,则从共享内存中获取下载状态改变的子进程标识,判断该下载状态改变的子进程标识是否为自身子进程的标识,若是,则表明用户需要改变自身子进程的下载状态, 该下载状态改变的子进程的主线程将对应该控制标志位3,控制子线程取消当前子进程的下载状态。以此类推,直到所有的子进程下载过程处理(包括下载、暂停取消等)完毕。本实施例基于电视机浏览器的javascript扩展,使浏览器能够多任务并发下载, 在任务下载的过程中,可以人为的控制某个正在下载状态,比如暂停、取消、继续等动作。 该方案把浏览器下载任务与浏览器独立起来,真正实现多任务下载,从而充分利用CPU资源,具有高效、人性化等特点,使得用户有良好体验性。具体地,如图6所示,本实施例中浏览器模块501包括加载单元5011、接收单元 5012以及写入单元5013,其中加载单元5011,用于在浏览器启动时,在浏览器中加载用于下载管理的动态库;接收单元5012,用于通过浏览器的网页接收用户的下载指令;写入単元5013,用于通过浏览器的javascript扩展接ロ调用所述动态库的相应函数接ロ,在共享内存中写入数据,其中,所述共享内存由所述浏览器和下载进程共同创建。如图7所示,任务下载模块502包括父进程单元5021以及子进程单元5022,其中父进程单元5021,用于启动下载进程,并读取共享内存中的控制标志位;当控制标志位为第一预定值时,读取共享内存中的下载信息,井根据下载信息,创建至少两个用于下载任务的子进程;子进程单元5022,用于通过子进程进行多任务下载。如图8所示,子进程单元5022包括创建单元50221、子线程单元50222以及主线程单元50223,其中创建单元50221,用于创建下载任务的子线程;子线程单元50222,用于在主线程单元50223的控制下执行子线程对应的下载任务;主线程单元50223,用于控制子线程进行相应任务下载。进ー步的,上述接收单元5012还用于在多任务下载过程中,通过浏览器的网页接收用户的下载更新指令;上述写入単元5013还用于在多任务下载过程中,通过浏览器的javascript扩展接ロ调用所述动态库的相应函数接ロ,更新共享内存中的数据。上述主线程单元50223还用于在多任务下载过程中,监听共享内存中的控制标志位及子进程标识;当共享内存中的控制标志位为非第一预定值时,获取共享内存中下载状态改变的子进程标识;比较下载状态改变的子进程标识与主线程当前的子进程标识;若两者不一致,则不改变当前子线程的下载进程的状态;否则,根据共享内存中的控制标志位, 控制当前子线程的下载任务的状态。本发明实施例一种多任务下载的方法及终端,基于浏览器的javascript扩展,将浏览器下载任务与浏览器独立起来,使浏览器能够多任务并发下载,下载的过程中,可以人为控制某个正在下载状态,比如暂停、取消、继续等动作,提高CPU资源利用率及浏览器性能,同时具有高效、人性化等特点,使得用户具有良好体验效果。以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
权利要求
1.一种多任务下载的方法,其特征在干,包括 浏览器启动,在浏览器中加载用于下载管理的动态库;通过所述浏览器的网页接收用户的下载指令,并通过所述浏览器的javascript扩展接ロ调用所述动态库的相应函数接ロ,在共享内存中写入数据;所述共享内存由所述浏览器和下载进程共同创建;启动所述下载进程,从所述共享内存中读取数据,并根据读取的数据进行多任务下载。
2.根据权利要求1所述的方法,其特征在干,所述共享内存中的数据包括控制标志位以及下载信息;所述下载信息至少包括如下信息中的ー个下载任务个数、下载地址、下载完成后的保存路径、子进程标识。
3.根据权利要求2所述的方法,其特征在干,所述启动下载进程,从所述共享内存中读取数据,并根据读取的数据进行多任务下载的步骤包括父进程启动下载进程,并读取所述共享内存中的控制标志位; 当所述控制标志位为第一预定值吋,所述父进程读取所述共享内存中的下载信息,并根据所述下载信息,创建至少两个用于下载任务的子进程; 通过所述子进程进行多任务下载。
4.根据权利要求3所述的方法,其特征在干,所述通过子进程进行多任务下载的步骤包括所述子进程创建各自的下载子线程;并通过主线程控制所述子线程执行相应下载任务。
5.根据权利要求2-4中任一项所述的方法,其特征在于,还包括在多任务下载过程中,通过所述浏览器的网页接收用户的下载更新指令; 通过所述浏览器的javascript扩展接ロ调用所述动态库的相应函数接ロ,在所述共享内存中更新所述控制标志位的值并写入下载状态改变的子进程标识。
6.根据权利要求5所述的方法,其特征在干,所述通过子进程进行多任务下载的步骤还包括所述子进程的主线程监听所述共享内存中的控制标志位;当所述共享内存中的控制标志位为非所述第一预定值时,获取所述共享内存中下载状态改变的子进程标识;比较所述下载状态改变的子进程标识与所述主线程当前的子进程标识;若两者不一致,则保持当前子线程的下载进程的状态;否则所述主线程根据所述共享内存中的控制标志位,控制当前子线程的下载任务的状态。
7.ー种多任务下载的终端,其特征在干,包括浏览器模块及任务下载模块,其中 所述浏览器模块包括加载单元,用于在浏览器启动时,在所述浏览器中加载用于下载管理的动态库; 接收单元,用于通过所述浏览器的网页接收用户的下载指令;写入単元,用于通过所述浏览器的javascript扩展接ロ调用所述动态库的相应函数接ロ,在共享内存中写入数据;所述共享内存由所述浏览器和下载进程共同创建;所述任务下载模块,用于启动所述下载进程,从所述共享内存中读取数据,并根据读取的数据进行多任务下载。
8.根据权利要求7所述的终端,其特征在干,所述任务下载模块包括父进程单元,用于启动下载进程,并读取所述共享内存中的控制标志位;当所述控制标志位为第一预定值时,读取所述共享内存中的下载信息,并根据所述下载信息,创建至少两个用于下载任务的子进程。子进程单元,用于通过所述子进程进行多任务下载。
9.根据权利要求8所述的终端,其特征在干,所述子进程単元包括创建单元,用于创建下载任务的子线程;子线程单元,用于执行所述子线程对应的下载任务;主线程单元,用于控制所述子线程单元执行相应下载任务。
10.根据权利要求7、8或9所述的终端,其特征在干,所述接收単元,还用于在多任务下载过程中,通过所述浏览器的网页接收用户的下载更新指令;所述写入単元,还用于通过所述浏览器的javascript扩展接ロ调用所述动态库的相应函数接ロ,在所述共享内存中更新控制标志位的值并写入下载状态改变的子进程标识。
11.根据权利要求9所述的终端,其特征在干,所述主线程单元还用于监听所述共享内存中的控制标志位;当所述共享内存中的控制标志位为非所述第一预定值时,获取所述共享内存中下载状态改变的子进程标识;比较所述下载状态改变的子进程标识与所述主线程当前的子进程标识;若两者不一致,则保持当前子线程的下载进程的状态;否则,根据所述共享内存中的控制标志位,控制当前子线程的下载任务的状态。
全文摘要
本发明公开一种多任务下载的方法及终端,其方法包括浏览器启动,在浏览器中加载用于下载管理的动态库;通过浏览器的网页接收用户的下载指令,并通过浏览器的javascript扩展接口调用所述动态库的相应函数接口,在共享内存中写入数据;启动下载进程,从共享内存中读取数据,并根据读取的数据进行多任务下载。本发明基于浏览器的javascript扩展,将浏览器下载任务与浏览器进程分离,实现浏览器多任务并发下载,并在下载过程中,可人为控制某个正在下载状态,比如暂停、取消、继续等,提高了CPU资源利用率及浏览器性能,同时具有高效、人性化等特点,使得用户具有良好体验。
文档编号G06F9/46GK102567097SQ201110451390
公开日2012年7月11日 申请日期2011年12月29日 优先权日2011年12月29日
发明者李余荣 申请人:Tcl王牌电器(惠州)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1