多线程的执行方法、装置、电子设备及存储介质与流程

文档序号:25637661发布日期:2021-06-25 16:45阅读:108来源:国知局
多线程的执行方法、装置、电子设备及存储介质与流程

1.本申请实施例涉及数据处理技术领域,具体而言,本申请实施例涉及多线程的执行方法、装置、电子设备及存储介质。


背景技术:

2.随着网络游戏的兴起,线上对战的模式很受欢迎。在网络游戏的线上对战的模式中,所有玩家的不同设备上操作同一画面,并在各个设备上展示所有玩家的操作的场景。而各个玩家的设备必须保证核心逻辑数据是一致的,从而保证所有玩家的设备上所显示的场景是完全相同的。
3.目前,保证各个玩家的设备核心逻辑数据是一致的方法通常是将核心数据以及较为耗时的任务置于帧线程上进行运算。但是,此方式使得降低了帧线程的处理效率,占用设备的处理性能。


技术实现要素:

4.为了能够解决保证每个设备的核心逻辑数据一致的现有方法所造成的帧线程的处理效率低、占用设备的处理性能的问题,本申请实施例提供了一种多线程的执行方法、装置、电子设备及存储介质。
5.第一方面,本申请实施例提供了一种多线程的执行方法,该方法包括以下步骤:
6.在当前帧触发异步任务时,根据所述异步任务的类型,预测所述异步任务的执行耗时;
7.根据预测结果得到的完成所述异步任务的处理帧号与所述异步任务的结果进行关联;
8.根据所述处理帧号按序将所述异步任务列入至任务队列,根据所述处理帧号执行所述任务队列中的异步任务。
9.在第一方面的可选实施例中,所述在当前帧触发异步任务时,根据所述异步任务的类型的步骤之前,还包括:
10.执行到当前帧时,检查是否存在前面的帧的异步任务;
11.若是,获取在所述当前帧待处理的所有异步任务。
12.在第一方面的可选实施例中,所述获取在所述当前帧待处理的所有异步任务的步骤,包括:
13.根据所述当前帧的帧号,从任务列表中获取并移除所述当前帧待处理的所有异步任务;
14.其中,所述任务列表存储待处理的异步任务。
15.在第一方面的可选实施例中,所述从任务列表中获取并移除所述当前帧待处理的所有异步任务的步骤之后,还包括:
16.执行所述异步任务,并等待所有所述异步任务执行完毕。
17.在第一方面的可选实施例中,所述等待所有所述异步任务执行完毕的步骤,包括:
18.对所有所述异步任务进行计算和数据变更;
19.根据所述异步任务的执行结果更新核心逻辑数据。
20.在第一方面的可选实施例中,所述根据预测结果得到的完成所述异步任务的处理帧号与所述异步任务的结果进行关联的步骤,包括:
21.根据每一帧的预设时长,对所述异步任务的执行所需占用的帧的数量进行预测;
22.根据所述预测结果得到完成所述异步任务的处理帧号,并将所述异步任务的执行结果分配给所述异步任务的核心数据更新的处理帧号。
23.在第一方面的可选实施例中,所述根据所述处理帧号执行所述任务队列中的异步任务的步骤,包括:
24.任务线程根据所述任务队列中的所述处理帧号按序取出异步任务,并执行;
25.其中,每个任务线程对应一个所述异步任务。
26.在第一方面的可选实施例中,所述根据所述处理帧号按序将所述异步任务列入至任务队列的步骤之后,还包括:
27.将其他不需要后面操作帧处理的异步任务按照产生顺序添加至所述任务队列。
28.在第一方面的可选实施例中,所述根据预测结果得到的完成所述异步任务的处理帧号与所述异步任务的结果进行关联的步骤之后,还包括:
29.将所述处理帧号以及其关联的待处理的异步任务存储在所述任务列表中。
30.在第一方面的可选实施例中,所述根据所述处理帧号执行所述任务队列中的异步任务的步骤之后,还包括:
31.所述任务线程执行完毕后,将所述异步任务的执行结果发送至所述任务列表中,对应所述处理帧号进行存储,并将所述处理帧号的任务状态改为已完成。
32.第二方面,还提供一种多线程的执行装置,其包括:
33.预测模块,用于在当前帧触发异步任务时,根据所述异步任务的类型,预测所述异步任务的执行耗时;
34.关联模块,用于根据预测结果得到的完成所述异步任务的处理帧号与所述异步任务的结果进行关联;
35.执行模块,用于根据所述处理帧号按序将所述异步任务列入至任务队列,根据所述处理帧号执行所述任务队列中的异步任务。
36.第三方面,提供了一种电子设备,该电子设备包括:
37.一个或多个处理器;
38.存储器;
39.一个或多个应用程序,其中一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于:执行实现本申请实施例的第一方面所提供的多线程的执行方法。
40.第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,其特征在于,该程序被处理器执行时实现本申请实施例第一方面所提供的多线程的执行方法。
41.本申请实施例提供的技术方案带来的有益效果是:
42.本申请所提供的多线程的执行方案,设备所执行的当前帧触发了异步任务时,预测该异步任务的执行处理耗时进行预测。根据对异步任务执行耗时的预测,得到处理帧号,并以该处理帧号将异步任务列入任务队列的任务线程中,并按序执行,从而既能够保证每个设备的核心逻辑数据一致,对于不能再当前帧完成的异步任务另设任务线程进行处理,从而降低了整个帧线程中每一帧的处理执行时间,有助于提高帧线程的处理效率,而且也为其他数据处理释放更多的设备处理性能,有助于提升设备的画面的流畅度。
43.本申请实施例附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请实施例的实践了解到。
附图说明
44.本申请实施例上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
45.图1为本申请的一个实施例中的多线程的执行方法的流程示意图;
46.图2为本申请所提供的一个实施例中的多线程的执行的运行架构图;
47.图3为本申请公开的实施例所提供的多线程的执行的结构示意;
48.图4为本申请一个实施例所提供的一种多线程的执行的电子设备的结构示意图。
具体实施方式
49.下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
50.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
51.为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
52.在本申请中,帧线程是包括多个执行的帧的线程。对于设备而言,操作系统将所产生的帧按照产生的顺序依次设置在帧线程上,并且根据各个帧的序号,逐一执行。在上述的每一帧中可以包含多个任务,其中包括该帧自带的任务,也可以包括由该任务的执行触发的异步任务。
53.一般情况下,由于异步任务一般执行时间较长,很可能需要跨越多个帧的执行时长才能完成。若需要等待异步任务执行完毕,则增加了帧线程的处理时间,从而造成设备运行时卡顿的现像。
54.基于上述问题,本申请提供一种多线程的执行方法。
55.参照图1,图1为本申请的一个实施例中的多线程的执行方法的流程示意图。该多线程的执行方法至少包括以下步骤:
56.s110、在当前帧触发异步任务时,根据所述异步任务的类型,预测所述异步任务的
执行耗时。
57.在本申请中,该异步任务是利用当前帧进行触发的。该异步任务的触发方式可以是以当前帧所自动的任务执行完毕或执行的中间结果作为触发条件进行触发,也可以是当前帧的启动触发对应的异步任务。
58.根据所得到的异常任务的类型,对其执行的耗时进行预测,以便得到该异步任务配置对应的处理资源。
59.s120、根据预测结果得到的完成所述异步任务的处理帧号与所述异步任务的结果进行关联。
60.根据步骤s110对异步任务的执行的预测结果,得到其执行耗时。根据该执行耗时,与帧的耗时进行对比,得到执行完成该异步任务大概在后续的第几帧。在本申请中,将该到执行完成该异步任务的帧号定义为处理帧号。在此实施例中,将该处理帧号与异步任务的执行完成的结果进行关联,即将该异步任务的结果对其处理帧号进行标注。
61.该执行耗时指定是该异步任务从被触发启动执行至执行完毕的时长。可以根据针对当前帧对异步任务的触发执行时间的记录,结合本步骤的预测结果,得到异步任务对应的处理帧号。
62.s130、根据所述处理帧号按序将所述异步任务列入至任务队列,根据所述处理帧号执行所述任务队列中的异步任务。
63.根据步骤s120所述,所得到的处理帧号是根据异步任务的触发执行时间和执行完成时间所得到的。根据处理帧号的排序,将异步任务列入任务队列中。在本实施例中,该任务队列是用于存储待处理的异步任务。并且,根据该任务队列中的处理帧号,按顺序执行对应的处理帧号的异步任务。
64.进一步地,由于每个异步任务的执行耗时不同,其对应的处理帧号的先后顺序不一定与触发的帧号顺序对应。
65.在本申请所提供的多线程的执行方法,对当前帧所触发的异步任务进行执行耗时的预测,得到对应的处理帧号,并将该异步任务的结果关联至该处理帧号上。然后根据处理帧号的顺序列入任务队列中,并根据该处理帧号的排序等待处理。本方案将帧线程的执行的帧所触发的异步任务列入任务队列另行执行,避免对应的异步任务堆积在帧线程上,造成降低帧线程的处理效率,占用设备的处理性能的问题。基于本方案降低了整个帧线程中每一帧的处理执行时间,有助于提高帧线程的处理效率,而且也为其他数据处理释放更多的设备处理性能,有助于提升设备的画面的流畅度。
66.基于本申请的上述实施例,在步骤s110之前,还包括:
67.执行到当前帧时,检查是否存在前面的帧的异步任务。若是,获取在所述当前帧待处理的所有异步任务。
68.对于帧线程而言,其执行的方式是根据帧的帧号排序逐帧地执行的。每逢执行到新的帧时,在本申请将其定义为当前帧。对该当前帧进行检查,检查确认当前帧是否存在在其前面执行的帧所触发的异步任务。
69.如果存在,则获取在该当前帧待处理的所有异步任务。在本实施例中该异步任务所对应的当前帧是之前执行的帧对其触发的异步任务的预测所得到的处理帧号。
70.对于上述获取在所述当前帧待处理的所有异步任务的步骤,包括:根据所述当前
帧的帧号,从任务列表中获取并移除所述当前帧待处理的所有异步任务。
71.在上述实施例的上,设置任务列表,该任务列表用于存储每个帧所对应的待处理的异步任务。如上述获取在所述当前帧待处理的所有异步任务的步骤执行时,帧线程根据处理帧号从该任务列表获取对应的所有的异步任务,并从该任务列表中移除该处理帧号上的异步任务。
72.当前帧从任务列表中获取到其所有的异步任务,并执行。等待该当前帧中的所有的异步任务执行完毕,才跳转至帧线程的下一帧。
73.对于上述的等待所有异步任务执行完毕的步骤中,可以进一步包括:对所有所述异步任务进行计算和数据变更;根据所述异步任务的执行结果更新核心逻辑数据。
74.对所有异步任务进行计算,可以包括对基础数据的计算。以游戏为例:
75.当接收到其中一用户对画面中的角色发出移动指令时,设备对该移动指令进行解析,得到包括角色的移动路径、角色移动所带来的攻击参数等。
76.其中,角色的移动路径包括为角色进行寻路和角色的渲染。设备通过对该移动指令进行解析,得到角色的ip以及目标位置。利用角色的ip确认角色图像当前的位置坐标,并根据目标位置的坐标与当前位置的相对位置得到角色图像利用寻路算法,得到距离最短的移动路径。并且,根据获取的距离最短的移动路径,根据该角色的移动速度,对角色图像进行渲染。
77.利用读写文件对角色的血量加持设置读写文件,并将该读写文件与触发特征进行关联,例如,该触发特征设定为坐标。
78.根据上述对角色的移动指令的解析和操作所得到的结果数据,包括角色的起始位置和目标位置之间距离最短的移动路径,以及触发对角色的血量加持。
79.根据距离最短的移动路径,对角色当前的当前的位置坐标进行了更新;以及根据对应位置的血量加持,得到角色位置的血量加持等核心逻辑数据。
80.当角色图像根据该角色位置的核心逻辑数据,从当前位置按照设定或控制的速度移动至角色位置指定的坐标位置。当设备的屏幕角色移动至血量加持的位置时,触发血量加持的核心逻辑数据,设备读取并解析对应的读写文件,得到血量的相关参数,并将该参数转化对应的显示效果。
81.在此基础上,根据预测结果得到的完成所述异步任务的处理帧号与所述异步任务的结果进行关联的步骤,包括:
82.根据每一帧的预设时长,对所述异步任务的执行所需占用的帧的数量进行预测;
83.根据所述预测结果得到完成所述异步任务的处理帧号,并将所述异步任务的执行结果分配给所述异步任务的核心数据更新的处理帧号。
84.在设备以及服务器对帧线程的处理中,就是以帧作为基本单位所组成的线程数据进行处理。根据协议规定,对帧线程上的帧数据预设单位时长,即每一帧的预设时长。根据异步任务的类型得到其执行的总时长,从而可以得到执行该异步任务需要占用的帧的数量的预测结果。
85.根据当前帧的帧号,将预测得到的完成执行该异步任务所需要占用的帧的数量添加至该当前帧的帧号,得到完成执行该异步任务的处理帧号。参照上述实施例的描述,异步任务的执行完成,能够根据执行中例如计算等数据处理手段得到执行结果更新核心逻辑数
据。
86.因此,对于本实施例而言,对于完成异步任务的处理帧号的预测,并将该异步任务的执行结果关联至该处理帧号,还可以进一步将该异步任务的执行结果所更新的核心逻辑数据关联至处理帧号,使得帧线程将该处理帧号对应的异步任务例而任务队列中,对该异步任务进行另行执行,以降低帧线程的任务处理压力,释放设备的性能。
87.对于步骤s130中的根据所述处理帧号执行所述任务队列中的异步任务的步骤,包括:
88.任务线程根据所述任务队列中的所述处理帧号按序取出异步任务,并执行;其中,每个任务线程对应一个所述异步任务。
89.在本实施例中,该任务线程是与异步任务一一对应设置的,该任务线程与帧线程是对数据相对独立的数据处理载体,当任务线程从任务队列中一一取出异步任务后,根据异步任务的处理帧号的顺序进行执行。当新产生的异步任务所对应的处理帧号排在已有任务线程所处理的异步任务的处理帧号之前,则将处理该新生成的异步任务的任务线程按照处理帧号的排序安插至已有的任务线程中。
90.在本申请中,所述根据所述处理帧号按序将所述异步任务列入至任务队列的步骤之后,还包括:
91.将其他不需要后面操作帧处理的异步任务按照产生顺序添加至所述任务队列。
92.对于该其他不需要后面操作帧处理的异步任务,将根据其与其他异步任务的产生的先后顺序分配对应的处理帧号,并添加至任务队列中,等待任务线程的取出和执行。
93.所述根据预测结果得到的完成所述异步任务的处理帧号与所述异步任务的结果进行关联的步骤之后,还包括:
94.将所述处理帧号以及其关联的待处理的异步任务存储在所述任务列表中。
95.即在得到待处理的异步任务的处理帧号时,除了将该异步任务的列入任务队列等待任务线程取出并执行,帧线程也将该处理帧号以及其关联的待处理的异步任务存储在所述任务列表中。
96.基于上述所有实施例中根据所述处理帧号执行所述任务队列中的异步任务的步骤之后,还包括:
97.所述任务线程执行完毕后,将所述异步任务的执行结果发送至所述任务列表中,对应所述处理帧号进行存储,并将所述处理帧号的任务状态改为已完成
98.当上述的任务线程完成对其对应的异步任务执行完毕,得到该异步任务的执行结果。任务线程将各自对异步任务的执行结果发送至任务列表,对任务列表中关于该处理帧号的异步任务的待处理状态更新至已完成的状态,并且将该异步任务的执行结果存储在该任务列表中。
99.当帧线程运行至该异步任务的处理帧号所对应的帧时,帧线程从该任务列表中获取该异步任务和其处理完成的结果,并对该异步任务进行移除。
100.参照图2,图2为本申请所提供的一个实施例中的多线程的执行的运行架构图。
101.为了能够对本申请中的多线程的执行方法进行更清楚说明,利用图2的运行架构图,对本申请所涉及的实施例进行举例说明。
102.该实施例所涉及的多线程的执行方法,包括以下步骤:
103.s1、执行到当前帧时,检查是否存在前面的帧的异步任务;若是,则转步骤s2。在图2中,将第n帧作为当前帧。
104.s2、根据所述当前帧的帧号,从任务列表中获取并移除所述当前帧待处理的所有异步任务;
105.s3、执行所述异步任务,并等待所有所述异步任务执行完毕
106.s4、对所有所述异步任务进行计算和数据变更,根据所述异步任务的执行结果更新核心逻辑数据;
107.s5、将所述处理帧号以及其关联的待处理的异步任务存储在所述任务列表中;
108.s6、根据所述处理帧号按序将所述异步任务列入至任务队列;
109.s7、任务线程根据所述任务队列中的所述处理帧号按序取出异步任务,并执行;
110.s8、所述任务线程执行完毕后,将所述异步任务的执行结果发送至所述任务列表中,对应所述处理帧号进行存储,并将所述处理帧号的任务状态改为已完成。
111.参考图3,图3为本申请公开的实施例所提供的多线程的执行装置300的结构示意图。该时序数据的存储装置300,包括:
112.预测模块310,用于在当前帧触发异步任务时,根据所述异步任务的类型,预测所述异步任务的执行耗时;
113.关联模块320,用于根据预测结果得到的完成所述异步任务的处理帧号与所述异步任务的结果进行关联;
114.执行模块330,用于根据所述处理帧号按序将所述异步任务列入至任务队列,根据所述处理帧号执行所述任务队列中的异步任务。
115.本申请实施例所提供的多线程的执行装置300,对当前帧所触发的异步任务进行执行耗时的预测,得到对应的处理帧号,并将该异步任务的结果关联至该处理帧号上。然后根据处理帧号的顺序列入任务队列中,并根据该处理帧号的排序等待处理。本方案将帧线程的执行的帧所触发的异步任务列入任务队列另行执行,避免对应的异步任务堆积在帧线程上,造成降低帧线程的处理效率,占用设备的处理性能的问题。基于本方案降低了整个帧线程中每一帧的处理执行时间,有助于提高帧线程的处理效率,而且也为其他数据处理释放更多的设备处理性能,有助于提升设备的画面的流畅度。
116.基于与本申请实施例中所示的方法相同的原理,本申请实施例中还提供了一种电子设备,该电子设备可以包括但不限于:处理器和存储器;存储器,用于存储计算机操作指令;处理器,用于通过调用计算机操作指令执行实施例所示的方法。与现有技术相比,本申请实施例中的电子设备对当前帧所触发的异步任务进行执行耗时的预测,得到对应的处理帧号,并将该异步任务的结果关联至该处理帧号上。然后根据处理帧号的顺序列入任务队列中,并根据该处理帧号的排序等待处理。本方案将帧线程的执行的帧所触发的异步任务列入任务队列另行执行,避免对应的异步任务堆积在帧线程上,造成降低帧线程的处理效率,占用设备的处理性能的问题。基于本方案降低了整个帧线程中每一帧的处理执行时间,有助于提高帧线程的处理效率,而且也为其他数据处理释放更多的设备处理性能,有助于提升设备的画面的流畅度。
117.参照图4,图4为本申请一个实施例所提供的一种多线程的执行的电子设备的结构示意图。
118.在一个可选实施例中提供了一种电子设备,如图4所示,图4所示的电子设备400包括:处理器401和存储器403。其中,处理器401和存储器403相连,如通过总线402相连。可选地,电子设备400还可以包括收发器404。需要说明的是,实际应用中收发器404不限于一个,该电子设备400的结构并不构成对本申请实施例的限定。
119.其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图4示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
120.本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,本申请实施例中的计算机可读存储介质对当前帧所触发的异步任务进行执行耗时的预测,得到对应的处理帧号,并将该异步任务的结果关联至该处理帧号上。然后根据处理帧号的顺序列入任务队列中,并根据该处理帧号的排序等待处理。本方案将帧线程的执行的帧所触发的异步任务列入任务队列另行执行,避免对应的异步任务堆积在帧线程上,造成降低帧线程的处理效率,占用设备的处理性能的问题。基于本方案降低了整个帧线程中每一帧的处理执行时间,有助于提高帧线程的处理效率,而且也为其他数据处理释放更多的设备处理性能,有助于提升设备的画面的流畅度。
121.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
122.上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
123.应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
124.以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1