CN112316419B - 应用程序的运行方法、装置、设备及可读存储介质 - Google Patents
应用程序的运行方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN112316419B CN112316419B CN202011208950.5A CN202011208950A CN112316419B CN 112316419 B CN112316419 B CN 112316419B CN 202011208950 A CN202011208950 A CN 202011208950A CN 112316419 B CN112316419 B CN 112316419B
- Authority
- CN
- China
- Prior art keywords
- resource
- environment
- management
- virtual
- threads
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/825—Fostering virtual characters
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/30—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/80—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
- A63F2300/807—Role playing or strategy games
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种应用程序的运行方法、装置、设备及可读存储介质,涉及程序设计领域。该方法包括:在应用程序中运行虚拟对局,虚拟对局中包括与虚拟环境中的显示内容对应的环境资源;基于虚拟对局创建资源加载容器,资源加载容器中包括至少两个资源管理线程;通过至少两个资源管理线程并发加载环境资源;在虚拟对局的运行过程中,并发管理至少两个资源管理线程对应的环境资源。通过创建与虚拟对局对应的资源加载容器,并在资源加载容器中设置至少两个资源管理线程,从而利用多线程的特性对虚拟环境中的环境资源进行并发管理,并实现了快速加载大量环境资源,提高了环境资源的加载和管理效率。
Description
技术领域
本申请实施例涉及程序设计领域,特别涉及一种应用程序的运行方法、装置、设备及可读存储介质。
背景技术
在基于虚拟环境运行的应用程序中,通常包括多种在虚拟环境中的虚拟对象和虚拟物体,其中,虚拟对象指示在虚拟环境中被玩家控制运动的虚拟人物、虚拟动物等,虚拟物体指示在虚拟环境中设置的三维模型,如:虚拟房屋、虚拟树木、虚拟载具等。
相关技术中,在虚拟对局中的显示内容以资源的形式进行加载显示,而在资源加载过程中,通过线程依次按序对资源进行加载,从而在显示内容在需要显示时,直接从线程中查找已加载的资源进行渲染显示。
然而,上述方式进行资源加载渲染时,由于需要加载的资源量较大,通常易导致卡顿现象的出现,虚拟对局的显示界面加载时的流畅性较差。
发明内容
本申请实施例提供了一种应用程序的运行方法、装置、设备及可读存储介质,能够提高虚拟对局的显示界面加载时的流畅性。所述技术方案如下:
一方面,提供了一种应用程序的运行方法,所述方法包括:
在所述应用程序中运行虚拟对局,所述虚拟对局中包括与虚拟环境中的显示内容对应的环境资源;
基于所述虚拟对局创建资源加载容器,所述资源加载容器中包括至少两个资源管理线程;
通过所述至少两个资源管理线程并发加载所述环境资源;
在所述虚拟对局的运行过程中,并发管理所述至少两个资源管理线程对应的所述环境资源。
另一方面,提供了一种应用程序的运行装置,所述装置包括:
运行模块,用于在所述应用程序中运行虚拟对局,所述虚拟对局中包括与虚拟环境中的显示内容对应的环境资源;
创建模块,用于基于所述虚拟对局创建资源加载容器,所述资源加载容器中包括至少两个资源管理线程;
加载模块,用于通过所述至少两个资源管理线程并发加载所述环境资源;
所述运行模块,还用于在所述虚拟对局的运行过程中,并发管理所述至少两个资源管理线程对应的所述环境资源。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述本申请实施例中任一所述应用程序的运行方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述本申请实施例中任一所述的应用程序的运行方法。
另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的应用程序的运行方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过创建与虚拟对局对应的资源加载容器,并在资源加载容器中设置至少两个资源管理线程,从而利用多线程的特性对虚拟环境中的环境资源进行并发管理,并实现了快速加载大量环境资源,提高了环境资源的加载和管理效率,充分利用终端CPU的性能,利用并发机制提高了虚拟对局的执行效率,以及提高了虚拟环境的显示流畅性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的建筑资源的加载结构示意图;
图2是本申请一个示例性实施例提供的环境资源加载结构的示意图;
图3是本申请一个示例性实施例提供的计算机系统的结构框图;
图4是本申请一个示例性实施例提供的应用程序的运行方法的流程图;
图5是本申请一个示例性实施例提供的资源加载容器的创建流程图;
图6是本申请一个示例性实施例提供的资源加载过程的流程图;
图7是本申请另一个示例性实施例提供的应用程序的运行方法的流程图;
图8是本申请一个示例性实施例提供的环境资源的管理过程的流程图;
图9是本申请另一个示例性实施例提供的应用程序的运行方法的流程图;
图10是本申请一个示例性实施例提供的资源加载容器的释放过程的流程图;
图11是本申请一个示例性实施例提供的资源加载容器的创建及应用过程的流程图;
图12是本申请一个示例性实施例提供的应用程序的运行装置的结构框图;
图13是本申请另一个示例性实施例提供的应用程序的运行装置的结构框图;
图14是本申请一个示例性实施例提供的终端的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,针对本申请实施例中涉及的名词进行简单介绍:
虚拟环境:是应用程序在终端上运行时显示(或提供)的虚拟环境。该虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的环境,还可以是纯虚构的环境。虚拟环境可以是二维虚拟环境、2.5维虚拟环境和三维虚拟环境中的任意一种,本申请对此不加以限定。下述实施例以虚拟环境是三维虚拟环境来举例说明。在一些实施例中,虚拟环境用于为至少两个主控虚拟角色提供作战环境。该虚拟环境包括对称的左下角区域和右上角区域,属于两个敌对阵营的主控虚拟角色分别占据其中一个区域,并以摧毁对方区域深处的目标建筑,或据点,或基地,或水晶来作为胜利目标。
在虚拟现实应用程序、三维地图程序、第一人称射击游戏(First PersonShooting Game,FPS)、第三人称射击游戏(Third Person Shooting Game,TPS)、多人在线战术竞技(Multiplayer Online Battle Arena,MOBA)游戏等应用程序中,通常需要在虚拟环境中设置多种虚拟物体以构建完整的虚拟环境场景,如:虚拟房屋、虚拟树木、虚拟载具、虚拟河流等,其中,在构建虚拟房屋的过程中,需要首先由开发人员构建虚拟房屋的屋体模型,并在屋体模型的基础上,逐个配置门窗数据,其中,开发人员根据屋体模型,在墙体的空缺位置处根据虚拟房屋的外观手动绘制门窗框体,从而进行门窗组件的设置。
环境资源:是指在渲染虚拟环境对应的环境界面之前需要加载的与虚拟环境中的显示内容对应的资源,示意性的,虚拟环境中包括虚拟房屋、虚拟树木、虚拟草坪等虚拟物体,以虚拟房屋为例,当虚拟房屋在虚拟环境中位于虚拟对象的可视范围内时,则首先加载虚拟房屋的三维模型资源,在加载完毕后,对虚拟房屋在虚拟环境界面中进行渲染显示。
示意性的,请参考图1,其示出了本申请一个示例性实施例提供的建筑资源的加载结构示意图,如图1所示,在虚拟环境界面100中显示有一个建筑物集群110,其中,建筑物集群110是由多个建筑物资源组成的,由图1可知,建筑物集群110由建筑物资源111、建筑物资源112和建筑物资源113组成,也即,在渲染建筑物集群110之前,首先需要对建筑物资源111、建筑物资源112和建筑物资源113进行加载,也即对及建筑物集群110的资源进行加载,从而实现建筑物集群110在虚拟环境中的配置,并根据对虚拟环境进行观察的视角对建筑物集群110的显示进行渲染。
本申请中提供的方法可以应用于虚拟现实应用程序、三维地图程序、FPS游戏、TPS游戏、MOBA游戏等,下述实施例是以在游戏中的应用来举例说明。
基于虚拟环境的游戏由一个或多个游戏世界的地图构成,游戏中的虚拟环境模拟真实世界的场景,用户可以操控游戏中的主控虚拟角色在虚拟环境中进行行走、跑步、跳跃、射击、格斗、驾驶、释放技能、受到其他虚拟角色的攻击、受到虚拟环境中的伤害、攻击其他虚拟角色等动作,交互性较强,并且多个用户可以在线组队进行竞技游戏。
本申请实施例中,在虚拟环境中设置有虚拟房屋、虚拟树木、虚拟动物等虚拟物体或对象,而虚拟物品和虚拟对象都以三维模型的形式位于三维虚拟环境中,相关技术中,在资源加载过程中,针对需要被加载的环境资源,通过单个线程依次对多个环境资源进行加载,直至多个环境资源皆加载完毕。示意性的,当虚拟对局开始时,根据虚拟对象当前所处的环境,对预设区域范围内的三维虚拟环境中的环境资源进行加载,从而在虚拟环境界面的渲染过程中,直接从加载的资源中渲染显示内容,然而,相关技术中,由于通过单线程对环境资源进行加载,资源的加载速度无法赶上界面渲染速度,从而会导致界面的渲染卡顿。
图2是本申请一个示例性实施例提供的环境资源加载结构的示意图,如图2所示,针对虚拟对局中的虚拟环境201创建有资源加载容器200,资源加载容器200中包括n个资源管理线程210,n个资源管理线程210利用处理器的多核特性,并发对环境资源进行加载以及管理,从而提高环境资源的加载效率。
图3示出了本申请一个示例性实施例提供的计算机系统的结构框图。该计算机系统300包括:第一终端320、服务器340和第二终端360。
第一终端320安装和运行有支持虚拟环境的应用程序。该应用程序可以是虚拟现实应用程序、三维地图程序、FPS游戏、MOBA游戏、多人枪战类生存游戏中的任意一种。第一终端320是第一用户使用的终端,第一用户使用第一终端320控制位于虚拟环境中的第一主控虚拟角色进行活动,该活动包括但不限于:调整身体姿态、行走、奔跑、跳跃、释放技能、拾取、攻击、躲避其他虚拟角色的攻击中的至少一种。示意性的,第一主控虚拟角色是第一虚拟人物,比如仿真人物角色或动漫人物角色。示意性的,第一主控虚拟角色在虚拟环境中释放区域型技能,虚拟环境画面由主控虚拟角色所在的位置向区域型技能指示器选中的目标区域移动。区域型技能指示器用于主控虚拟角色在释放技能时选择释放区域。
第一终端320通过无线网络或有线网络与服务器340相连。
服务器340包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。示意性的,服务器340包括处理器344和存储器342,存储器342又包括接收模块3421、控制模块3422和发送模块3423,接收模块3421用于接收客户端发送的请求,如组队请求;控制模块3422用于控制虚拟环境画面的渲染;发送模块3423用于向客户端发送消息通知,如组队成功通知。服务器340用于为支持三维虚拟环境的应用程序提供后台服务。可选地,服务器340承担主要计算工作,第一终端320和第二终端360承担次要计算工作;或者,服务器340承担次要计算工作,第一终端320和第二终端360承担主要计算工作;或者,服务器340、第一终端320和第二终端360三者之间采用分布式计算架构进行协同计算。
第二终端360通过无线网络或有线网络与服务器340相连。
第二终端360安装和运行有支持虚拟环境的应用程序。该应用程序可以是虚拟现实应用程序、三维地图程序、FPS游戏、MOBA游戏、多人枪战类生存游戏中的任意一种。第二终端360是第二用户使用的终端,第二用户使用第二终端360控制位于虚拟环境中的第二主控虚拟角色进行活动,该活动包括但不限于:调整身体姿态、行走、奔跑、跳跃、释放技能、拾取、攻击、躲避其他主控虚拟角色的攻击中的至少一种。示意性的,第二主控虚拟角色是第二虚拟人物,比如仿真人物角色或动漫人物角色。
可选地,第一虚拟人物角色和第二虚拟人物角色处于同一虚拟环境中。可选地,第一虚拟人物角色和第二虚拟人物角色可以属于同一个队伍、同一个组织、具有好友关系或具有临时性的通讯权限。
可选地,第一终端320和第二终端360上安装的应用程序是相同的,或两个终端上安装的应用程序是不同控制系统平台的同一类型应用程序。第一终端320可以泛指多个终端中的一个,第二终端360可以泛指多个终端中的一个,本实施例仅以第一终端320和第二终端360来举例说明。第一终端320和第二终端360的设备类型相同或不同,该设备类型包括:智能手机、平板电脑、电子书阅读器、MP3播放器、MP4播放器、膝上型便携计算机和台式计算机中的至少一种。以下实施例以终端包括智能手机来举例说明。
本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以仅为一个,或者上述终端为几十个或几百个,或者更多数量。本申请实施例对终端的数量和设备类型不加以限定。
图4是本申请一个示例性实施例提供的应用程序的运行方法的流程图,以该方法应用于终端中为例进行说明,如图4所示,该方法包括:
步骤401,在应用程序中运行虚拟对局,虚拟对局中包括与虚拟环境中的显示内容对应的环境资源。
本申请实施例中,虚拟对局为基于三维虚拟环境运行的对局,终端所控制的虚拟对象在三维虚拟环境中参与虚拟对战。
在一些实施例中,在参与虚拟对战时,终端以虚拟对象的第一人称视角对虚拟环境进行观察,或,终端以虚拟对象的第三人称视角对虚拟环境进行观察。而基于终端观察虚拟环境的人称视角不同,终端所显示的虚拟环境界面中的显示内容也不同。如:在第一人称视角下,虚拟环境中仅包括虚拟对象所观察到的虚拟物体和/或虚拟人物,而在第三人称视角下,终端所显示的虚拟环境界面中不仅包括虚拟对象所观察到的虚拟物体和/或虚拟人物,还包括虚拟对象本身。
无论以第一人称视角对虚拟环境进行观察还是以第三人称视角对虚拟环境进行观察,皆需要对虚拟对象所观察到的虚拟物体和/或虚拟人物在虚拟环境界面中进行渲染,而在渲染之前,首先需要对显示内容对应的环境资源进行加载。环境资源加载的过程即为三维虚拟环境的预先构建过程。
示意性的,在虚拟环境中包括虚拟房屋、虚拟树木、虚拟载具等虚拟物体,其中,这些虚拟物体需要通过资源加载的方式首先确定三维模型,从而将虚拟物体的三维模型设置于三维虚拟环境中,从而在进行虚拟环境界面的渲染时,直接对已加载的环境资源进行图像采集,并生成虚拟环境界面中的画面。
示意性的,在虚拟环境中虚拟对象所观察的区域范围内,设置有虚拟房屋a、虚拟房屋b和虚拟房屋c构建的虚拟房屋集群,则首先需要加载虚拟房屋a、虚拟房屋b和虚拟房屋c的环境资源,得到虚拟房屋a、虚拟房屋b和虚拟房屋c的三维模型,并将三维模型加载至三维虚拟环境中,从而对三维虚拟环境进行观察时,由于虚拟房屋a、虚拟房屋b和虚拟房屋c的三维模型已加载完毕,采集到的画面中包括虚拟房屋a、虚拟房屋b和虚拟房屋c的形态。而若虚拟房屋a、虚拟房屋b和虚拟房屋c的三维模型未加载完毕,则终端采集到的三维虚拟环境的画面中不包括虚拟房屋a、虚拟房屋b和虚拟房屋c的形态。
在一些实施例中,虚拟对局为应用程序中运行的单局虚拟对战,也即,虚拟对象在虚拟对局中参与虚拟对战后,得到该虚拟对局的对战结果,并在单局向虚拟对局结束后,能够重新参与到新的虚拟对局中进行虚拟对战。
步骤402,基于虚拟对局创建资源加载容器,资源加载容器中包括至少两个资源管理线程。
在一些实施例中,当接收到虚拟对局的开始信号时,首先创建与虚拟对局对应的资源加载容器,从而在资源加载容器中设置至少两个资源管理线程。
示意性的,当终端在对局准备界面中接收到对对局开始控件的选择操作时,确定接收到虚拟对局的开始信号,并创建与虚拟对局对应的资源加载容器。
在一些实施例中,资源加载容器中的资源管理线程的数量与终端处理器的运算核心的数量相关。示意性的,资源管理线程的数量大于或者等于处理器中运算核心的数量。示意性的,终端处理器实现为双核处理器,资源加载容器中包括四个或者六个资源管理线程,其中,资源加载容器中能够并发管理两个资源管理线程中的环境资源。
也即,资源加载容器用于创建以对虚拟环境中的环境资源进行装载及管理,而至少两个资源管理线程用于对环境资源的管理和加载进行并发处理。
由于资源加载容器中包括至少两个资源管理线程,且至少两个资源管理线程用于对环境资源进行并发管理,也即,资源管理线程分别加载一部分环境资源,以及管理一部分已加载的环境资源。
示意性的,虚拟环境中对应有环境资源1、环境资源2、环境资源3和环境资源4,其中环境资源1和环境资源2加载至第一资源管理线程,环境资源3和环境资源4加载至第二资源管理线程。
步骤403,通过至少两个资源管理线程并发加载环境资源。
在一些实施例中,根据处理器中运算核心的数量,通过至少两个资源管理线程并发加载环境资源。如:终端处理器为双核处理器,则并发的通过两个资源管理线程加载两个环境资源。
可选地,资源管理线程加载环境资源的方式包括如下方式中的至少一种:
第一,根据环境资源对应的哈希值,将环境资源加载至与哈希值对应的资源管理线程上。
在一些实施例中,确定环境资源的资源路径,并对资源路径进行哈希转换,得到环境资源对应的哈希表达,从而基于哈希表达从至少两个资源管理线程中确定环境资源对应的资源管理线程。
示意性的,针对第一环境资源,确定第一环境资源的资源路径,并对资源路径进行哈希转换,从而得到第一环境资源的哈希表达,基于哈希表达从至少两个资源管理线程中确定第一管理线程作为加载第一环境资源的资源管理线程。
其中,在基于哈希表达从至少两个资源管理线程中确定与环境资源对应的资源管理线程时,在一些实施例中,各个资源管理线程分别对应不同的哈希特征,如:不同的资源管理线程对应的哈希表达的最后一位不同,第一资源管理线程对应哈希表达的最后一位为1、2、3或4的环境资源,第二资源管理线程对应哈希表达的最后一位为5、6、7或8的环境资源,依次类推。也即,当第一环境资源的哈希表达的最后一位为7时,则将第一环境资源加载至第二资源管理线程上进行管理。
值得注意的是,上述举例中,以哈希表达的最后一位与资源管理线程的对应关系为例进行说明,在资源管理线程的设计中,还可以通过哈希表达中的任意一位于资源管理线程进行对应设计,本申请实施例对哈希表达与资源管理线程的对应方式不加以限定。
第二,根据资源管理线程的排列顺序,将队列中的环境资源顺次加载至资源管理线程上。
示意性的,队列中包括环境资源1、环境资源2、环境资源3和环境资源4,并发将环境资源加载至第一资源管理线程、第二资源管理线程、第三资源管理线程和第四资源管理线程上,则首先将环境资源1和环境资源2分别加载至第一资源管理线程、第二资源管理线程上,加载完毕后,将环境资源3和环境资源分别加载至第三资源管理线程和第四资源管理线程上,其中,当其中一个环境资源加载完毕后,即可进行下一个环境资源的加载,如:在环境资源1和环境资源2的加载过程中,当环境资源1加载完毕,而环境资源2未加载完毕时,即可进行环境资源3在第三资源管理线程上的加载。
第三,根据资源管理线程上已加载的环境资源的数量,从至少两个资源管理线程中选择加载资源量最少的资源管理线程进行环境资源的加载。
可选地,当存在多个加载资源量最少的资源管理线程时,从多个资源管理线程中随机确定一个资源管理线程进行环境资源的加载。
可选地,环境资源在加载至资源管理线程上时,需要对资源管理线程进行加锁处理。示意性的,针对环境资源中的第一环境资源,从至少两个资源管理线程中确定第一管理线程,对第一管理线程进行加锁处理,加载第一环境资源至资源加载容器中的第一管理线程上,并对第一管理线程进行解锁处理。
其中,对第一管理线程进行加锁处理即表示第一管理线程需要占用运算资源执行环境资源的加载,而当第一管理线程上第一环境资源加载完毕后,第一管理线程解锁并释放运算资源,以供其他资源管理线程占用。在一些实施例中,当第一管理线程需要对第一环境资源进行加载时,在第一管理线程的头部进行加锁处理,而当第一管理线程对第一环境资源加载完毕时,从第一管理线程的尾部进行解锁处理。
步骤404,在虚拟对局的运行过程中,并发管理至少两个资源管理线程对应的环境资源。
可选地,由于资源加载容器中包括至少两个资源管理线程,通过至少两个资源管理线程的并发性,以及利用终端中央处理器(Central Processing Unit,CPU)的性能,并发地对至少两个资源管理线程中的环境资源进行管理。
其中,上述环境资源的管理方式包括:增加、删除、修改、查找等操作。
可选地,根据终端CPU的计算核心数量m,并发对至少两个中的m个资源管理线程进行环境资源的管理,m为正整数。
综上所述,本实施例提供的方法,通过创建与虚拟对局对应的资源加载容器,并在资源加载容器中设置至少两个资源管理线程,从而利用多线程的特性对虚拟环境中的环境资源进行并发管理,并实现了快速加载大量环境资源,提高了环境资源的加载和管理效率,充分利用终端CPU的性能,利用并发机制提高了虚拟对局的执行效率,以及提高了虚拟环境的显示流畅性。
示意性的,图5是本申请一个示例性实施例提供的资源加载容器的创建流程图,如图5所示,该过程中包括:
步骤501,创建资源加载容器。
即,当虚拟对局开启时,根据虚拟对局所对应的虚拟环境,创建资源加载容器,该资源加载容器用于容纳虚拟环境中的环境资源,如:虚拟房屋的三维模型、虚拟树木的三维模型等。
在一些实施例中,资源加载容器用于容纳虚拟环境中所有显示内容对应的环境资源,或,资源加载容器用于同一时间容纳虚拟环境中部分显示内容对应的环境资源,如:根据虚拟对象在虚拟环境中所处的位置,加载以虚拟对象为中心,在预设距离范围内的虚拟物体或虚拟人物的环境资源。
步骤502,创建多个线程。
即,创建至少两个资源管理线程,虚拟环境对应的环境资源在加载时,加载至该至少两个资源管理线程上。
在一些实施例中,环境资源放置到资源加载容器中的过程是通过多个资源管理线程创建完之后,将环境资源放置到容器中与资源管理线程对应,且环境资源与资源管理线程需要一个哈希值进行对应。
步骤503,循环调度线程。
可选地,循环调度线程是指在多个线程之间进行循环调度,从而从多个线程中查找需要管理的环境资源。
图6是本申请一个示例性实施例提供的资源加载过程的流程图,如图6所示,该过程中包括:
步骤601,线程执行。
可选地,从至少两个资源管理线程中确定出用于加载当前需要加载的环境资源的资源管理线程。其中,根据环境资源的资源路径确定对应的哈希表达后,根据哈希表达从至少两个资源管理线程中确定出目标资源管理线程;或,根据至少两个资源管理线程中各个资源管理线程管理的环境资源的资源量,从至少两个资源管理线程中确定出目标资源管理线程;或,根据资源管理线程对环境资源的管理顺序,从至少两个资源管理线程中确定出目标资源管理线程。
步骤602,加锁。
从至少两个资源管理线程中确定出目标资源管理线程后,由目标管理线程进行加锁处理,从而对终端的计算资源进行占用,避免其他线程抢占终端的计算资源。
步骤603,加载资源。
当目标资源管理线程进行加锁处理后,由目标管理线程对环境资源进行加载。可选地,目标资源管理线程加锁后,对终端的计算资源进行占用,也即占用终端处理器的计算核心进行计算,从而对环境资源进行加载。
步骤604,放置在容器中。
可选地,目标资源管理线程将加载的环境资源内放置在资源加载容器内,并对应目标资源管理线程进行存储。
步骤605,解锁。
当环境资源加载完毕后,目标资源管理线程无需继续占用终端的计算资源,从而进行解锁处理,由其他资源管理线程对终端的计算资源进行占用,并继续加载或者管理环境资源。
在一些实施例中,在对环境资源进行并发管理的过程中,包括增加、删除、查找、修改等操作,图7是本申请另一个示例性实施例提供的应用程序的运行方法的流程图,以该方法应用于终端中为例进行说明,如图7所示,该方法包括:
步骤701,在应用程序中运行虚拟对局,虚拟对局中包括与虚拟环境中的显示内容对应的环境资源。
本申请实施例中,虚拟对局为基于三维虚拟环境运行的对局,终端所控制的虚拟对象在三维虚拟环境中参与虚拟对战。
在对虚拟对象所观察到的虚拟物体和/或虚拟人物进行渲染之前,首先需要对显示内容对应的环境资源进行加载。环境资源加载的过程即为三维虚拟环境的预先构建过程。
示意性的,在虚拟环境中包括虚拟房屋、虚拟树木、虚拟载具等虚拟物体,其中,这些虚拟物体需要通过资源加载的方式首先确定三维模型,从而将虚拟物体的三维模型设置于三维虚拟环境中,从而在进行虚拟环境界面的渲染时,直接对已加载的环境资源进行图像采集,并生成虚拟环境界面中的画面。
步骤702,基于虚拟对局创建资源加载容器,资源加载容器中包括至少两个资源管理线程。
在一些实施例中,当接收到虚拟对局的开始信号时,首先创建与虚拟对局对应的资源加载容器,从而在资源加载容器中设置至少两个资源管理线程。
示意性的,当终端在对局准备界面中接收到对对局开始控件的选择操作时,确定接收到虚拟对局的开始信号,并创建与虚拟对局对应的资源加载容器。
在一些实施例中,资源加载容器中的资源管理线程的数量与终端处理器的运算核心的数量相关。示意性的,资源管理线程的数量大于或者等于处理器中运算核心的数量。示意性的,终端处理器实现为双核处理器,资源加载容器中包括四个或者六个资源管理线程,其中,资源加载容器中能够并发管理两个资源管理线程中的环境资源。
也即,资源加载容器用于创建以对虚拟环境中的环境资源进行装载及管理,而至少两个资源管理线程用于对环境资源的管理和加载进行并发处理。
步骤703,通过至少两个资源管理线程并发加载环境资源。
在一些实施例中,根据处理器中运算核心的数量,通过至少两个资源管理线程并发加载环境资源。如:终端处理器为双核处理器,则并发的通过两个资源管理线程加载两个环境资源。
可选地,根据环境资源对应的哈希值,将环境资源加载至与哈希值对应的资源管理线程上。
在一些实施例中,确定环境资源的资源路径,并对资源路径进行哈希转换,得到环境资源对应的哈希表达,从而基于哈希表达从至少两个资源管理线程中确定环境资源对应的资源管理线程。
步骤704,在虚拟对局的运行过程中,响应于接收到对第二环境资源的管理请求,从至少两个资源管理线程中确定加载有第二环境资源的第二管理线程。
可选地,由于资源加载容器中包括至少两个资源管理线程,通过至少两个资源管理线程的并发性,以及利用终端CPU的性能,并发地对至少两个资源管理线程中的环境资源进行管理。
在一些实施例中,在通过至少两个资源管理线程进行环境资源的管理时,对至少两个资源管理线程进行循环调度,从而从至少两个资源管理线程中确定与第二环境资源对应的,也即用于对第二环境资源进行管理的第二管理线程。
也即,基于终端处理器运算核心的数量,对至少两个资源管理线程进行并发循环调度,确定加载有第二环境资源的第二管理线程。
在第二环境资源的加载过程中,由第二管理线程对其进行加载,并在加载完毕后,将第二环境资源存储在资源加载容器内,且与第二管理线程对应存储,用于表示由第二管理线程对第二环境资源进行后续的管理;或,在第二环境资源的加载过程中,由其他管理线程对其进行加载,并在加载完毕后,将第二环境资源内存储在资源加载容器内,与第二管理线程对应存储,用于表示由第二管理线程对第二环境资源进行后续的管理。
步骤705,对第二管理线程进行加锁处理。
由于在虚拟对局的运行过程中,需要对第二环境资源进行管理,而第二环境资源由第二管理线程负责管理,故,对第二管理线程进行加锁处理,也即由第二管理线程占用终端的计算资源对第二环境资源进行管理。
步骤706,从第二管理线程上获取第二环境资源,对第二环境资源进行与管理请求对应的管理操作。
其中,上述环境资源的管理方式包括:增加、删除、修改、查找等操作。
可选地,响应于管理请求中包括增加请求,对第二环境资源进行内容增加操作;响应于管理请求中包括删除请求,对第二环境资源进行内容删除操作;响应于管理请求中包括查找请求,从第二环境资源中查找该查找请求对应的资源内容;响应于管理请求中包括修改请求,对第二环境资源进行内容修改操作。
步骤707,对第二管理线程进行解锁处理。
可选地,当第二管理线程对第二环境资源进行对应的管理操作后,通过解锁处理释放终端的计算资源,以供其他资源管理线程对环境资源进行加载或管理。
综上所述,本实施例提供的方法,通过创建与虚拟对局对应的资源加载容器,并在资源加载容器中设置至少两个资源管理线程,从而利用多线程的特性对虚拟环境中的环境资源进行并发管理,并实现了快速加载大量环境资源,提高了环境资源的加载和管理效率,充分利用终端CPU的性能,利用并发机制提高了虚拟对局的执行效率,以及提高了虚拟环境的显示流畅性。
本实施例提供的方法,当需要对环境资源进行管理操作时,由于资源加载容器中包括多个资源管理线程,从而根据终端处理器的多核特性,通过多个资源管理线程对环境资源进行并发管理,提高了环境资源的管理效率,从而提高了虚拟环境界面的显示流畅性。
示意性的,图8是本申请一个示例性实施例提供的环境资源的管理过程的流程图,如图8所示,该过程中包括:
步骤801,线程执行。
可选地,从至少两个资源管理线程中确定出用于加载当前需要执行管理操作的环境资源对应的资源管理线程。
步骤802,加锁。
从至少两个资源管理线程中确定出目标资源管理线程后,由目标管理线程进行加锁处理,从而对终端的计算资源进行占用,避免其他线程抢占终端的计算资源。
步骤803,从容器中获取资源。
在一些实施例中,通过目标资源管理线程从资源加载容器中获取该需要执行管理操作的环境资源。
步骤804,对资源执行管理操作。
可选地,响应于管理请求中包括增加请求,对第二环境资源进行内容增加操作;响应于管理请求中包括删除请求,对第二环境资源进行内容删除操作;响应于管理请求中包括查找请求,从第二环境资源中查找该查找请求对应的资源内容;响应于管理请求中包括修改请求,对第二环境资源进行内容修改操作。
步骤805,解锁。
当环境资源的管理操作执行完毕后,目标资源管理线程无需继续占用终端的计算资源,从而进行解锁处理,由其他资源管理线程对终端的计算资源进行占用,并继续加载或者管理环境资源。
在一些实施例中,当资源加载容器应用完毕后,还需要对资源加载容器进行释放。图9是本申请另一个示例性实施例提供的应用程序的运行方法的流程图,以该方法应用于终端中为例进行说明,如图9所示,该方法包括:
步骤901,在应用程序中运行虚拟对局,虚拟对局中包括与虚拟环境中的显示内容对应的环境资源。
本申请实施例中,虚拟对局为基于三维虚拟环境运行的对局,终端所控制的虚拟对象在三维虚拟环境中参与虚拟对战。
在对虚拟对象所观察到的虚拟物体和/或虚拟人物进行渲染之前,首先需要对显示内容对应的环境资源进行加载。环境资源加载的过程即为三维虚拟环境的预先构建过程。
示意性的,在虚拟环境中包括虚拟房屋、虚拟树木、虚拟载具等虚拟物体,其中,这些虚拟物体需要通过资源加载的方式首先确定三维模型,从而将虚拟物体的三维模型设置于三维虚拟环境中,从而在进行虚拟环境界面的渲染时,直接对已加载的环境资源进行图像采集,并生成虚拟环境界面中的画面。
步骤902,基于虚拟对局创建资源加载容器,资源加载容器中包括至少两个资源管理线程。
在一些实施例中,资源加载容器中的资源管理线程的数量与终端处理器的运算核心的数量相关。示意性的,资源管理线程的数量大于或者等于处理器中运算核心的数量。示意性的,终端处理器实现为双核处理器,资源加载容器中包括四个或者六个资源管理线程,其中,资源加载容器中能够并发管理两个资源管理线程中的环境资源。
步骤903,通过至少两个资源管理线程并发加载环境资源。
在一些实施例中,根据处理器中运算核心的数量,通过至少两个资源管理线程并发加载环境资源。如:终端处理器为双核处理器,则并发的通过两个资源管理线程加载两个环境资源。
可选地,根据环境资源对应的哈希值,将环境资源加载至与哈希值对应的资源管理线程上。
步骤904,在虚拟对局的运行过程中,并发管理至少两个资源管理线程对应的环境资源。
可选地,由于资源加载容器中包括至少两个资源管理线程,通过至少两个资源管理线程的并发性,以及利用终端CPU的性能,并发地对至少两个资源管理线程中的环境资源进行管理。
其中,上述环境资源的管理方式包括:增加、删除、修改、查找等操作。
步骤905,接收容器释放信号,容器释放信号用于指示释放资源加载容器中的环境资源。
在一些实施例中,当虚拟对局结束时,生成与该虚拟对局对应的容器释放信号,指示释放与该虚拟对局对应的资源加载容器;或,当终端从当前运行的应用程序切换至其他应用程序时,生成容器释放信号,从而释放与该虚拟对局对应的资源加载容器;或,响应于当前虚拟环境的内容显示完毕且无需再显示时,生成容器释放信号(如:虚拟环境更新显示内容时,则释放过期的显示内容所对应的资源加载容器)。
步骤906,基于容器释放信号,对资源管理线程进行加锁处理。
在一些实施例中,遍历整个资源加载容器,并依次对资源管理线程进行清空处理。而在对资源管理线程进行清空之前,首先对资源管理线程进行加锁处理,从而占用终端的计算资源完成清空操作。
步骤907,对资源管理线程进行资源清空处理,并对清空后的资源管理线程进行解锁处理。
在一些实施例中,在对资源管理线程进行资源清空处理时,释放资源管理线程上已加载的环境资源。
可选地,利用并发机制释放容器中的环境资源,也即,同时能够对多个资源管理线程进行加锁处理,并释放环境资源。其中,并发执行资源清空处理的资源管理线程的数量,对终端CPU的核数对应。
在环境资源释放完毕后,对清空后的资源管理线程进行解锁处理,从而释放终端内的计算资源。
在一些实施例中,在对资源管理线程进行资源清空处理后,对资源加载容器进行清空。
综上所述,本实施例提供的方法,通过创建与虚拟对局对应的资源加载容器,并在资源加载容器中设置至少两个资源管理线程,从而利用多线程的特性对虚拟环境中的环境资源进行并发管理,并实现了快速加载大量环境资源,提高了环境资源的加载和管理效率,充分利用终端CPU的性能,利用并发机制提高了虚拟对局的执行效率,以及提高了虚拟环境的显示流畅性。
本实施例提供的方法,在资源加载容器应用完毕后,从资源加载容器中释放环境资源,并清空该资源加载容器,从而避免资源加载容器长期占用终端计算资源而影响其他终端功能的运行。
示意性的,图10是本申请一个示例性实施例提供的资源加载容器的释放过程的流程图,如图10所示,该过程中包括:
步骤1001,线程执行。
在一些实施例中,对资源加载容器中的资源管理线程进行遍历,从资源加载容器中依次选定资源管理线程进行环境资源的释放。其中,选择至少两个资源管理线程进行并发的环境资源释放。
步骤1002,加锁。
从至少两个资源管理线程中确定出需要释放环境资源的资源管理线程后,对需要进行环境资源释放的资源管理线程进行加锁处理,从而对终端的计算资源进行占用,避免其他线程抢占终端的计算资源。
步骤1003,释放容器中已有的资源。
也即,将资源加载容器中已加载的环境资源进行释放处理。
步骤1004,清空容器。
在一些实施例中,当资源管理线程对应的环境资源被释放后,清空该资源加载容器,也即,对资源加载容器中的资源进行清空确认。
步骤1005,解锁。
示意性的,图11是本申请一个示例性实施例提供的资源加载容器的创建及应用过程的流程图,如图11所示,该过程中包括:
步骤1101,创建一个装载资源的容器。
可选地,当接收到虚拟对局的对局开始信号时,创建与该虚拟对局对应的资源加载容器。
资源加载容器用于装载与虚拟环境对应的环境资源,也即在虚拟环境中显示的虚拟物体或者虚拟人物的三维模型。
步骤1102,加载资源至容器中。
可选地,资源加载容器中包括至少两个资源管理线程,将虚拟环境对应的环境资源加载至资源加载容器中,且由至少两个资源管理线程并发地将环境资源加载至资源加载容器中。
步骤1103,对资源进行管理操作。
在一些实施例中,对资源加载容器中的环境资源内进行增加、删除、修改或者查找操作。
步骤1104,释放装载资源的容器。
在一些实施例中,将资源加载容器中已加载的环境资源进行释放处理。
综上所述,本实施例提供的方法,通过创建与虚拟对局对应的资源加载容器,并在资源加载容器中设置至少两个资源管理线程,从而利用多线程的特性对虚拟环境中的环境资源进行并发管理,并实现了快速加载大量环境资源,提高了环境资源的加载和管理效率,充分利用终端CPU的性能,利用并发机制提高了虚拟对局的执行效率,以及提高了虚拟环境的显示流畅性。
图12是本申请一个示例性实施例提供的应用程序的运行装置的结构框图,如图12所示,该装置包括:
运行模块1210,用于在所述应用程序中运行虚拟对局,所述虚拟对局中包括与虚拟环境中的显示内容对应的环境资源;
创建模块1220,用于基于所述虚拟对局创建资源加载容器,所述资源加载容器中包括至少两个资源管理线程;
加载模块1230,用于通过所述至少两个资源管理线程并发加载所述环境资源;
所述运行模块1210,还用于在所述虚拟对局的运行过程中,并发管理所述至少两个资源管理线程对应的所述环境资源。
在一个可选的实施例中,如图13所示,所述加载模块1230,包括:
确定单元1231,用于针对环境资源中的第一环境资源,从所述至少两个资源管理线程中确定第一管理线程;
处理单元1232,用于对所述第一管理线程进行加锁处理;
加载单元1233,用于通过所述第一管理线程将所述第一环境资源加载至所述资源加载容器中;
所述处理单元1232,还用于对所述第一管理线程进行解锁处理。
在一个可选的实施例中,所述确定单元1231,还用于确定所述第一环境资源的资源路径;对所述资源路径进行哈希转换,得到所述第一环境资源对应的哈希表达;
所述确定单元1231,还用于基于所述哈希表达从所述至少两个资源管理线程中确定所述第一管理线程。
在一个可选的实施例中,所述确定单元1231,还用于确定所述哈希表达中指定哈希位的数值;
所述确定单元1231,还用于基于所述指定哈希位的数值从所述至少两个资源管理线程中确定所述第一管理线程,所述第一管理线程与所述指定哈希位的数值对应。
在一个可选的实施例中,所述运行模块1210,还用于响应于接收到对第二环境资源的管理请求,从所述至少两个资源管理线程中确定加载有所述第二环境资源的第二管理线程;对所述第二管理线程进行加锁处理;
所述运行模块1210,还用于从所述第二管理线程上获取所述第二环境资源,对所述第二环境资源进行与所述管理请求对应的管理操作;对所述第二管理线程进行解锁处理。
在一个可选的实施例中,所述运行模块1210,还用于基于处理器运算核心的数量,对所述至少两个资源管理线程进行并发循环调度,确定加载有所述第二环境资源的所述第二管理线程。
在一个可选的实施例中,所述运行模块1210,还用于响应于所述管理请求中包括增加请求,对所述第二环境资源进行内容增加操作;
所述运行模块1210,还用于响应于所述管理请求中包括删除请求,对所述第二环境资源进行内容删除操作;
所述运行模块1210,还用于响应于所述管理请求中包括查找请求,从所述第二环境资源中查找所述查找请求对应的资源内容;
所述运行模块1210,还用于响应于所述管理请求中包括修改请求,对所述第二环境资源进行内容修改操作。
在一个可选的实施例中,所述装置还包括:
接收模块1240,用于接收容器释放信号,所述容器释放信号用于指示释放所述资源加载容器中的所述环境资源;
所述运行模块1210,还用于基于所述容器释放信号,对所述资源管理线程进行加锁处理;对所述资源管理线程进行资源清空处理,并对清空后的所述资源管理线程进行解锁处理。
在一个可选的实施例中,所所述运行模块1210,还用于释放所述资源管理线程上已加载的所述环境资源。
综上所述,本实施例提供的装置,通过创建与虚拟对局对应的资源加载容器,并在资源加载容器中设置至少两个资源管理线程,从而利用多线程的特性对虚拟环境中的环境资源进行并发管理,并实现了快速加载大量环境资源,提高了环境资源的加载和管理效率,充分利用终端CPU的性能,利用并发机制提高了虚拟对局的执行效率,以及提高了虚拟环境的显示流畅性。
需要说明的是:上述实施例提供的应用程序的运行装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用程序的运行装置与应用程序的运行方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请还提供了一种终端,该终端包括处理器和存储器,存储器中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述各个方法实施例提供的基于虚拟环境的技能释放方法由第一终端执行的步骤或由第二终端执行的步骤。需要说明的是,该终端可以是如下图14所提供的终端。
图14示出了本申请一个示例性实施例提供的电子设备1400的结构框图。该电子设备1400可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving PictureExperts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(MovingPicture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。电子设备1400还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,电子设备1400包括有:处理器1401和存储器1402。
处理器1401可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1401可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1401也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1401可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1401还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1402可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1402还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1402中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1401所执行以实现本申请中方法实施例提供的应用个内需的运行方法。
在一些实施例中,电子设备1400还可选包括有:外围设备接口1403和至少一个外围设备。处理器1401、存储器1402和外围设备接口1403之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1403相连。具体地,外围设备包括:射频电路1404、显示屏1405、摄像头组件1406、音频电路1407和电源1409中的至少一种。
外围设备接口1403可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1401和存储器1402。在一些实施例中,处理器1401、存储器1402和外围设备接口1403被集成在同一芯片或电路板上;在一些其他实施例中,处理器1401、存储器1402和外围设备接口1403中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1404用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1404通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1404将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1404包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1404可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1404还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1405用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1405是触摸显示屏时,显示屏1405还具有采集在显示屏1405的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1401进行处理。此时,显示屏1405还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1405可以为一个,设置在电子设备1400的前面板;在另一些实施例中,显示屏1405可以为至少两个,分别设置在电子设备1400的不同表面或呈折叠设计;在另一些实施例中,显示屏1405可以是柔性显示屏,设置在电子设备1400的弯曲表面上或折叠面上。甚至,显示屏1405还可以设置成非矩形的不规则图形,也即异形屏。显示屏1405可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1406用于采集图像或视频。可选地,摄像头组件1406包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1406还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1407可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1401进行处理,或者输入至射频电路1404以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在电子设备1400的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1401或射频电路1404的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1407还可以包括耳机插孔。
电源1409用于为电子设备1400中的各个组件进行供电。电源1409可以是交流电、直流电、一次性电池或可充电电池。当电源1409包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,电子设备1400还包括有一个或多个传感器1410。该一个或多个传感器1410包括但不限于:加速度传感器1411、陀螺仪传感器1412、压力传感器1413、光学传感器1415以及接近传感器1416。
加速度传感器1411可以检测以电子设备1400建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1411可以用于检测重力加速度在三个坐标轴上的分量。处理器1401可以根据加速度传感器1411采集的重力加速度信号,控制显示屏1405以横向视图或纵向视图进行用户界面的显示。加速度传感器1411还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1412可以检测电子设备1400的机体方向及转动角度,陀螺仪传感器1412可以与加速度传感器1411协同采集用户对电子设备1400的3D动作。处理器1401根据陀螺仪传感器1412采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1413可以设置在电子设备1400的侧边框和/或显示屏1405的下层。当压力传感器1413设置在电子设备1400的侧边框时,可以检测用户对电子设备1400的握持信号,由处理器1401根据压力传感器1413采集的握持信号进行左右手识别或快捷操作。当压力传感器1413设置在显示屏1405的下层时,由处理器1401根据用户对显示屏1405的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
光学传感器1415用于采集环境光强度。在一个实施例中,处理器1401可以根据光学传感器1415采集的环境光强度,控制显示屏1405的显示亮度。具体地,当环境光强度较高时,调高显示屏1405的显示亮度;当环境光强度较低时,调低显示屏1405的显示亮度。在另一个实施例中,处理器1401还可以根据光学传感器1415采集的环境光强度,动态调整摄像头组件1406的拍摄参数。
接近传感器1416,也称距离传感器,通常设置在电子设备1400的前面板。接近传感器1416用于采集用户与电子设备1400的正面之间的距离。在一个实施例中,当接近传感器1416检测到用户与电子设备1400的正面之间的距离逐渐变小时,由处理器1401控制显示屏1405从亮屏状态切换为息屏状态;当接近传感器1416检测到用户与电子设备1400的正面之间的距离逐渐变大时,由处理器1401控制显示屏1405从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图14中示出的结构并不构成对电子设备1400的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请的实施例还提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的应用程序的运行方法。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行,以实现上述各方法实施例提供的应用程序的运行方法。
本申请的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的应用程序的运行方法。
可选地,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、固态硬盘(SSD,Solid State Drives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (14)
1.一种应用程序的运行方法,其特征在于,所述方法包括:
在游戏应用程序中运行虚拟对局,所述虚拟对局中包括与虚拟环境中的显示内容对应的环境资源;
基于所述虚拟对局创建资源加载容器,所述资源加载容器中包括至少两个资源管理线程;
针对所述环境资源中的第一环境资源,从所述至少两个资源管理线程中确定第一管理线程;对所述第一管理线程进行加锁处理,所述加锁处理用于指示对终端的计算资源进行占用;通过所述第一管理线程将所述第一环境资源加载至所述资源加载容器中;对所述第一管理线程进行解锁处理,其中,基于所述环境资源的哈希表达中最后一位的数值将所述环境资源加载至对应的资源管理线程;
在所述虚拟对局的运行过程中,并发管理所述至少两个资源管理线程对应的所述环境资源。
2.根据权利要求1所述的方法,其特征在于,所述针对所述环境资源中的第一环境资源,从所述至少两个资源管理线程中确定第一管理线程,包括:
确定所述第一环境资源的资源路径;
对所述资源路径进行哈希转换,得到所述第一环境资源对应的哈希表达;
基于所述哈希表达从所述至少两个资源管理线程中确定所述第一管理线程。
3.根据权利要求2所述的方法,其特征在于,所述基于所述哈希表达从所述至少两个资源管理线程中确定所述第一管理线程,包括:
确定所述哈希表达中指定哈希位的数值;
基于所述指定哈希位的数值从所述至少两个资源管理线程中确定所述第一管理线程,所述第一管理线程与所述指定哈希位的数值对应。
4.根据权利要求1至3任一所述的方法,其特征在于,所述并发管理所述至少两个资源管理线程对应的所述环境资源,包括:
响应于接收到对第二环境资源的管理请求,从所述至少两个资源管理线程中确定加载有所述第二环境资源的第二管理线程;
对所述第二管理线程进行加锁处理;
从所述第二管理线程上获取所述第二环境资源,对所述第二环境资源进行与所述管理请求对应的管理操作;
对所述第二管理线程进行解锁处理。
5.根据权利要求4所述的方法,其特征在于,所述从所述至少两个资源管理线程中确定加载有所述第二环境资源的第二管理线程,包括:
基于处理器运算核心的数量,对所述至少两个资源管理线程进行并发循环调度,确定加载有所述第二环境资源的所述第二管理线程。
6.根据权利要求4所述的方法,其特征在于,所述对所述第二环境资源进行与所述管理请求对应的管理操作,包括:
响应于所述管理请求中包括增加请求,对所述第二环境资源进行内容增加操作;
响应于所述管理请求中包括删除请求,对所述第二环境资源进行内容删除操作;
响应于所述管理请求中包括查找请求,从所述第二环境资源中查找所述查找请求对应的资源内容;
响应于所述管理请求中包括修改请求,对所述第二环境资源进行内容修改操作。
7.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
接收容器释放信号,所述容器释放信号用于指示释放所述资源加载容器中的所述环境资源;
基于所述容器释放信号,对所述资源管理线程进行加锁处理;
对所述资源管理线程进行资源清空处理,并对清空后的所述资源管理线程进行解锁处理。
8.根据权利要求7所述的方法,其特征在于,所述对所述资源管理线程进行资源清空处理,包括:
释放所述资源管理线程上已加载的所述环境资源。
9.一种应用程序的运行装置,其特征在于,所述装置包括:
运行模块,用于在游戏应用程序中运行虚拟对局,所述虚拟对局中包括与虚拟环境中的显示内容对应的环境资源;
创建模块,用于基于所述虚拟对局创建资源加载容器,所述资源加载容器中包括至少两个资源管理线程;
加载模块,用于针对所述环境资源中的第一环境资源,从所述至少两个资源管理线程中确定第一管理线程;对所述第一管理线程进行加锁处理,所述加锁处理用于指示对终端的计算资源进行占用;通过所述第一管理线程将所述第一环境资源加载至所述资源加载容器中;对所述第一管理线程进行解锁处理,其中,基于所述环境资源的哈希表达中最后一位的数值将所述环境资源加载至对应的资源管理线程;
所述运行模块,还用于在所述虚拟对局的运行过程中,并发管理所述至少两个资源管理线程对应的所述环境资源。
10.根据权利要求9所述的装置,其特征在于,所述确定单元,还用于确定所述第一环境资源的资源路径;对所述资源路径进行哈希转换,得到所述第一环境资源对应的哈希表达;
所述确定单元,还用于基于所述哈希表达从所述至少两个资源管理线程中确定所述第一管理线程。
11.根据权利要求10所述的装置,其特征在于,所述确定单元,还用于确定所述哈希表达中指定哈希位的数值;
所述确定单元,还用于基于所述指定哈希位的数值从所述至少两个资源管理线程中确定所述第一管理线程,所述第一管理线程与所述指定哈希位的数值对应。
12.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至8任一所述的应用程序的运行方法。
13.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至8任一所述的应用程序的运行方法。
14.一种计算机程序产品,其特征在于,包括计算机程序或指令,所述计算机程序或指令被处理器执行时实现如权利要求1至8任一所述的应用程序的运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011208950.5A CN112316419B (zh) | 2020-11-03 | 2020-11-03 | 应用程序的运行方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011208950.5A CN112316419B (zh) | 2020-11-03 | 2020-11-03 | 应用程序的运行方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112316419A CN112316419A (zh) | 2021-02-05 |
CN112316419B true CN112316419B (zh) | 2022-06-28 |
Family
ID=74322844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011208950.5A Active CN112316419B (zh) | 2020-11-03 | 2020-11-03 | 应用程序的运行方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112316419B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1938685A (zh) * | 2004-02-06 | 2007-03-28 | 英特尔公司 | 用于缩减使用同时多线程处理器的带缓冲的应用的能耗的方法 |
CN108345505A (zh) * | 2018-02-02 | 2018-07-31 | 珠海金山网络游戏科技有限公司 | 一种多线程资源管理方法和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7657893B2 (en) * | 2003-04-23 | 2010-02-02 | International Business Machines Corporation | Accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor |
US8561073B2 (en) * | 2008-09-19 | 2013-10-15 | Microsoft Corporation | Managing thread affinity on multi-core processors |
-
2020
- 2020-11-03 CN CN202011208950.5A patent/CN112316419B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1938685A (zh) * | 2004-02-06 | 2007-03-28 | 英特尔公司 | 用于缩减使用同时多线程处理器的带缓冲的应用的能耗的方法 |
CN108345505A (zh) * | 2018-02-02 | 2018-07-31 | 珠海金山网络游戏科技有限公司 | 一种多线程资源管理方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112316419A (zh) | 2021-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110141859B (zh) | 虚拟对象控制方法、装置、终端及存储介质 | |
CN111596838B (zh) | 业务处理方法、装置、计算机设备及计算机可读存储介质 | |
CN111603771B (zh) | 动画生成方法、装置、设备及介质 | |
CN111589128A (zh) | 基于虚拟场景的操作控件显示方法及装置 | |
CN111589127B (zh) | 虚拟角色的控制方法、装置、设备及存储介质 | |
CN112843679B (zh) | 虚拟对象的技能释放方法、装置、设备及介质 | |
CN110496392B (zh) | 虚拟对象的控制方法、装置、终端及存储介质 | |
CN112691370B (zh) | 虚拟对局中投票结果的显示方法、装置、设备及存储介质 | |
CN111744185B (zh) | 虚拟对象控制方法、装置、计算机设备及存储介质 | |
CN111026318B (zh) | 基于虚拟环境的动画播放方法、装置、设备及存储介质 | |
CN111672104B (zh) | 虚拟场景的显示方法、装置、终端及存储介质 | |
CN112891931A (zh) | 虚拟角色的选择方法、装置、设备及存储介质 | |
CN111589116B (zh) | 显示功能选项的方法、装置、终端及存储介质 | |
CN111760278A (zh) | 技能控件的显示方法、装置、设备及介质 | |
CN110833695B (zh) | 基于虚拟场景的业务处理方法、装置、设备及存储介质 | |
CN111589141A (zh) | 虚拟环境画面的显示方法、装置、设备及介质 | |
CN112691375B (zh) | 虚拟对象控制方法、装置、终端及存储介质 | |
CN112274936B (zh) | 虚拟道具的子道具补充方法、装置、设备及存储介质 | |
CN112156454B (zh) | 虚拟对象的生成方法、装置、终端及可读存储介质 | |
CN112604302B (zh) | 虚拟环境中虚拟对象的互动方法、装置、设备及存储介质 | |
CN111589117B (zh) | 显示功能选项的方法、装置、终端及存储介质 | |
CN113599819A (zh) | 提示信息的显示方法、装置、设备及存储介质 | |
CN113171613B (zh) | 组队对局方法、装置、设备及存储介质 | |
CN112619131B (zh) | 虚拟道具的状态切换方法、装置、设备及可读存储介质 | |
CN112316419B (zh) | 应用程序的运行方法、装置、设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40037968 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |