发明内容
本发明实施例所要解决的技术问题是提供一种Flash任务的多线程处理方法和系统,用于将Flash程序中的任务进行多线程的处理。
本发明实施例提供一种Flash任务的多线程处理方法,包括:
主程序接收用户通过页面输入的执行所述Flash任务的指令;
所述主程序将所述Flash任务分成至少二个子任务,并将所述至少二个子任务逐一分配给至少二个辅程序中的全部或部分所述辅程序,以使所述辅程序分别执行被分配的一个所述子任务;其中,所述至少二个辅程序的数量大于或等于所述至少二个子任务的数量;
所述主程序接收各个所述辅程序分别返回的子任务执行结果,并汇总显示所述Flash任务的执行结果。
相应的,本发明实施例还提供一种Flash任务的多线程处理系统,包括:
主程序单元以及链接所述主程序单元的至少二个辅程序单元;
所述主程序单元,用于接收用户通过页面输入的执行所述Flash任务的指令,以及将所述Flash任务分成至少二个子任务,并将所述至少二个子任务逐一分配给至少二个辅程序单元中的全部或部分辅程序单元,以使所述辅程序单元分别执行被分配的一个所述子任务;其中,所述至少二个辅程序单元的数量大于或等于所述至少二个子任务的数量;以及接收各个所述辅程序单元分别返回的子任务执行结果,并汇总显示所述Flash任务的执行结果;
所述至少二个辅程序单元的全部或部分辅程序单元,分别用于接收所述主程序单元分配的一个所述子任务,并分别执行被分配的一个所述子任务;以及分别返回执行一个所述子任务的执行结果至所述主程序单元。
本发明实施例中,主程序将Flash任务划分得到的子任务分配给至少二个辅程序中的全部辅程序或部分辅程序并行执行,实现了对Flash程序中的Flash任务的多线程,从而可以更大限度的利用计算机多核心的运算资源及网络连接资源,以提高运算或下载速度。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中提供了一种Flash任务的多线程处理方法和系统,用于将Flash程序中的任务实现多线程的处理,以下分别进行详细说明。
实施例一:
参考图1,本发明提供了一种Flash任务的多线程处理方法,包括:
步骤S1、主程序接收用户通过页面输入的执行Flash任务的指令。
步骤S2、主程序将上述Flash任务分成至少二个子任务,并将分成的至少二个子任务逐一分配给至少二个辅程序中的全部或部分辅程序,以使辅程序分别执行被分配的一个子任务;其中,上述的至少二个辅程序的数量大于或等于至少二个子任务的数量。
步骤S3、主程序接收各个辅程序分别返回的子任务执行结果,并汇总显示Flash任务的执行结果。
其中,在步骤S1中,主程序接收用户通过页面输入的执行Flash任务的指令,例如用户点击Flash页面中的某个位置或按键,即生成相关的任务及执行该任务的指令。
在步骤S2中,主程序将需要执行的Flash任务分成至少二个子任务,然后将至少二个子任务逐一的分配给与主程序链接的至少二个辅程序中的全部或部分辅程序,以使各个辅程序分别执行其被分配到的子任务,其中,每一个辅程序至多被分配一个子任务,同样一个子任务只能分配给一个辅程序,并且至少二个子任务的数量小于或等于至少二个辅程序的数量,以避免出现有多余的子任务无法被分配和执行的情况出现。
在步骤S3中,主程序接收各个辅程序分别返回的执行子任务的结果,主程序将各个子任务的执行结果进行汇总之后显示;在具体的实现过程中可能会出现分配给某一辅程序的一个子任务没有相应的结果返回给主程序的情况,如果同时出现该辅程序没有按照既定的频率向主程序回报的情况,那么可能是主程序和辅程序之间出现了链接的阻碍,这种情况下,主程序将尝试与辅程序重新建立链接,在重新建立链接之后辅程序再将因中断链接而未能回报的子任务结果返回给主程序。
需要说明的是,主程序可将需要交由辅程序执行的Flash任务分配给辅程序进行执行,并接收辅程序返回的结果,但在辅程序执行任务的同时,主程序也在执行其自身需要执行的Flash任务,而不是处于空闲状态以等待辅程序返回的结果,这样也可避免主程序空闲导致的资源浪费。
本实施例中,主程序和辅程序包含在一个Flash页面中,优选地,将辅程序的长宽均设置为0,以避免主程序和辅程序在视觉上占用空间造成混淆。
本实施例中,主程序和辅程序通过Adobe Flash的本地连接(localconnection)类实现数据的交互,需要理解的是,主程序与辅程序之间数据交互的接口或方式不局限于localconnection类,也可以是其它合适的数据交互接口或方式,如使用Flash页面中Javascript和Flash程序的外部访问接口(ExternalInterface)类提供接口。
参考图2,进一步地,为了使用辅程序执行任务,在步骤S1之前,即主程序接收用户通过页面输入的执行Flash任务的指令之前,还包括:
步骤S0、主程序发送激活指令至上述的辅程序,以激活上述的辅程序。
进一步地,在步骤S3之后,即上述的主程序接收各个上述的辅程序分别返回的子任务执行结果,并汇总显示上述的Flash任务的执行结果之后,还包括:
步骤S4、主程序发送休眠指令至上述的辅程序,以使上述的辅程序休眠。
通过设置步骤S0及步骤S4,可使得辅程序在主程序的控制下处于休眠或激活状态,具体地,是在需要辅程序执行任务时,将辅程序激活并使其执行被分配的子任务,以充分利用计算机的多线程计算或下载资源,而在任务完成之后不需要辅程序执行任务时,令辅程序休眠以节约相关系统资源。
本实施例中上述的Flash任务可以是运算任务,该运算任务的内容包括例如但不限于诸如为实现Flash页面的声音、视频、动画等效果进行的运算或其它特定的数据的运算。
参考图3,本实施例中上述的Flash任务也可以是下载任务,例如但不限于文件的下载或通讯交互中的数据下载;当上述的Flash任务是下载任务时,步骤S2包括:
步骤S21、上述的主程序将上述的Flash任务分成至少二个子任务,并将分成的至少二个子任务逐一分配给全部或部分辅程序,以使各个辅程序分别利用多个不同的浏览器线程进行多线程下载,并将下载的结果存入本地RSL共享库。
当上述的Flash任务是下载任务时,步骤S3具体包括:
步骤S31、上述的主程序接收各个上述的辅程序返回的下载完成的信息;
步骤S32、上述的主程序调用上述的本地RSL共享库中的各个上述的辅程序下载的结果进行汇总,以得到上述的Flash任务的执行结果并显示。
在步骤S31中,主程序接收执行下载任务的各个辅程序在在下载任务执行完成之后返回的下载完成的信息,该下载完成的信息中还可包括下载的结果存储的位置等信息。
在步骤S32中,主程序根据步骤S31中各个辅程序返回的信息调用本地RSL共享库中各个辅程序下载的结果并进行汇总,以得到上述的Flash任务的执行结果并在相关的Flash页面中显示。
实施例二:
参考图4,本发明还提供一种Flash任务的多线程处理系统,包括主程序单元1以及与主程序单元1链接的至少二个辅程序单元2,图4中以虚线表示主程序单元1与辅程序单元2的链接关系为软件和数据的交互,而非实体的连接关系,其中,
主程序单元1用于接收用户通过页面输入的执行上述的Flash任务的指令,以及将上述的Flash任务分成至少二个子任务,并将分成的至少二个子任务逐一分配给至少二个辅程序单元2中的全部或部分辅程序单元2,以使被分配任务的辅程序单元2分别执行被分配的一个上述的子任务;其中,上述的至少二个辅程序单元2的数量大于或等于上述的至少二个子任务的数量;以及接收各个辅程序单元2分别返回的子任务执行结果,并汇总显示上述的Flash任务的执行结果;
至少二个辅程序单元2的全部或部分辅程序单元2,分别用于接收主程序单元1分配的一个上述的子任务,并分别执行被分配的一个上述的子任务;以及分别返回执行一个上述的子任务的执行结果至主程序单元1。
需要说明的是,主程序单元1可将需要交由辅程序单元2执行的Flash任务分配给辅程序单元2进行执行,并接收辅程序单元2返回的结果,但在辅程序单元2执行任务的同时,主程序单元1也在执行其自身需要执行的Flash任务,而不是处于空闲状态以等待辅程序单元2返回的结果,这样也可避免主程序单元空1闲导致的资源浪费。
本实施例中,主程序单元1和辅程序单元2包含在一个Flash页面中,优选地,将辅程序单元2的长宽均设置为0,以避免主程序单元1和辅程序单元2在视觉上占用空间造成混淆。
本实施例中,主程序单元1和辅程序单元2通过Adobe Flash的localconnection类实现数据的交互,需要理解的是,主程序单元1与辅程序单元之间2数据交互的接口或方式不局限于localconnection类,也可以是其它合适的数据交互接口或方式,如使用Flash页面中Javascript和Flash程序的ExternalInterface类提供接口。
进一步地,在本发明提供的Flash任务的多线程处理系统中,主程序单元1还可用于在上述的接收用户通过页面输入的执行上述的Flash任务的指令之前,发送激活指令至辅程序单元2以激活辅程序单元2。
进一步地,在本发明提供的Flash任务的多线程处理系统中,主程序单元1还用于在上述的接收各个辅程序单元2分别返回的子任务执行结果,并汇总显示上述的Flash任务的执行结果之后,发送休眠指令至辅程序单元2以使辅程序单元2休眠。
在本发明提供的Flash任务的多线程处理系统中,主程序单元1在需要辅程序单元2执行任务前,激活辅程序单元2以多线程的执行任务,可更大限度的利用计算机的多核CPU资源和网络资源,提高运算和下载速度,减少资源加载时间。以采用四核心CPU的计算机为例,理论上可以达到提高至四倍的原运算速度的效果,特别是对于使用大量资源的网页游戏应用效果显著,可明显的缩短相关Flash页面的加载和等待时间,提供更丰富的产品效果,提升用户体验。
在本发明提供的Flash任务的多线程处理系统中,主程序单元1在辅程序单元2执行完任务后或不需要辅程序单元2执行任务时,使辅程序单元2休眠,可减少系统计算资源和主程序单元1线程资源的消耗。
本实施例中,上述的Flash任务可以是运算任务,该运算任务的内容包括例如但不限于诸如为实现Flash页面的声音、视频、动画等效果进行的运算或其它特定的数据的运算。
本实施例中上述的Flash任务也可以是下载任务,例如但不限于文件的下载或通讯交互中的数据下载。当上述的Flash任务是下载任务时,主程序单元1将该下载任务分成至少二个下载子任务,并逐一分配给至少二个辅程序单元2中的全部或部分辅程序单元2,使得被分配下载子任务的各个辅程序单元2利用多个不同的浏览器线程进行下载,并将下载结果存储在本地RSL共享库中;在下载完成后,主程序单元1接收各个辅程序单元2返回的下载完成的信息,主程序单元1调用各个辅程序单元2的下载结果并汇总显示下载任务的执行结果。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-OnlyMemory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
以上对本发明实施例所提供的Flash任务的多线程处理方法和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。