[发明专利]一种实现以帧为单位程序的模拟多线程处理的方法在审
申请号: | 201310579213.X | 申请日: | 2013-11-15 |
公开(公告)号: | CN103559021A | 公开(公告)日: | 2014-02-05 |
发明(设计)人: | 段屈直 | 申请(专利权)人: | 五八同城信息技术有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/50 |
代理公司: | 北京律恒立业知识产权代理事务所(特殊普通合伙) 11416 | 代理人: | 顾珊;庞立岩 |
地址: | 300457 天津市滨海新区第一*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 单位 程序 模拟 多线程 处理 方法 | ||
技术领域
本发明涉及计算机领域,特别是一种实现以帧为单位程序的模拟多线程处理的方法。
背景技术
Flash Player/Air是Adobe开发的一种应用程序运行环境,具有开发简便,跨系统平台等优势。其中,Flash Player运行在网页上,Air运行在本机上(如:Windows、OSX、Linux、iOS、Android等)。
随着计算机硬件技术的发展,个人电脑基本都普及了多核心的CPU和多线程技术,在但现在的Flash Player/Air的运行环境中运行的程序,由于平台的限制,其中包含的Flash任务只能以单一线程运行,也只能使用单个CPU的运算资源。随着技术的发展和用户需求的提高,在Flash/Air应用在进行密集计算时,容易产生主线程假死,使UI无响应等问题,从而限制了产品的效果。即使在进行密集计算之前,先给用户提示,然后再进行计算。然而,如果计算时间很长,面对一个不动的提示界面,用户还是会认为是死机。再者,当计算时间超过15秒时,Flash Player/Air会报错,造成用户体验不好。
目前,虽然在Flash Player11.4/Air3.4以后版本中提供了worker API来实现程序的多线程运行。然而,目前的高版本的Flash/Air应用存在不支持手机、需要使用者自主升级以及worker API会增大文件等问题。
因此,需要一种基于Adobe Flash/Air实现多线程的有效方法,来克服上述由于单一线程带来的主线程假死、用户体验差的问题。
发明内容
本发明的目的是提供一种实现以帧为单位程序的模拟多线程处理的有效方法。
根据本发明的一个方面,提供了一种用于实现以帧为单位程序的模拟多线程处理的方法,所述方法包括如下步骤:a)检测所述程序的运行速度;b)计算每个帧的运行所需的时间;c)判断在当前帧该程序是否触发了一个计算,若未触发,则运行下一帧;若触发,则记录当前程序的时间点;d)循环执行该帧所触发的计算,判断程序运行的时间是否已经超过了步骤b中计算得到的每帧运行时间,若未超过,则返回步骤d继续计算;若已超过,则进入步骤e;e)判断所触发的计算是否已经完成,若完成,则结束;若未完成,则进入步骤f;f)记录当前计算执行的位置,运行下一帧,恢复所记录的所述计算执行的位置,返回步骤d。
优选地,所述步骤a中的运行速度以单位时间内的帧数来计算。
优选地,所述步骤b中的计算是将步骤a的计算结果取倒数后作为每帧的计算时间。
优选地,所述步骤b中的计算是将步骤a的计算结果取倒数后再取整作为每帧的计算时间。
优选地,所述以帧为单位程序是Adoce Flash/Air。
优选地,所述帧的运行包括代码执行和渲染。
优选地,所述以帧为单位程序以60帧/秒的速度运行。
根据本发明的模拟多线程处理的方法,可以适用于各种以帧为单位的程序。根据本发明的方法,可以将一帧中触发的计算分配到各个帧来执行,从而克服上述由于单一线程带来的主线程假死所造成的用户体验差的问题。
附图说明
参考随附的附图,本发明更多的目的、功能和优点将通过本发明实施方式的如下描述得以阐明,其中:
图1示意性示出了本发明的实现以帧为单位程序的模拟多线程处理的方法的流程图。
具体实施方式
通过参考示范性实施例,本发明的目的和功能以及用于实现这些目的和功能的方法将得以阐明。然而,本发明并不受限于以下所公开的示范性实施例;可以通过不同形式来对其加以实现。说明书的实质仅仅是帮助相关领域技术人员综合理解本发明的具体细节。
在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
根据本发明的实现以帧为单位程序的模拟多线程处理的方法,对于某一帧需要完成的计算分成多次进行计算,即一次只对某一帧进行规定时间内的计算。其结果为,在符合用户体验需求的时间内,实时显示对每一帧计算的临时效果,并在后续的计算中完善该效果。
根据本发明的以帧为单位的程序例如是基于Adobe Flash/Air实现的程序。在根据本发明的程序中,每个帧包含代码执行和渲染两个阶段。
图1示意性示出了本发明的实现以帧为单位程序的模拟多线程处理的方法流程图。如图1所示:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于五八同城信息技术有限公司,未经五八同城信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310579213.X/2.html,转载请声明来源钻瓜专利网。