一种任务处理方法、装置、设备以及存储介质与流程

文档序号:28435587发布日期:2022-01-12 01:48阅读:54来源:国知局
一种任务处理方法、装置、设备以及存储介质与流程

1.本公开涉及计算机技术领域,具体而言,涉及一种任务处理方法、装置、设备以及计算机可读存储介质。


背景技术:

2.目前,移动应用程序通过集成sdk(software development kit,软件开发工具包)扩展业务场景偏多,使用sdk的目的是为了快速,高效的完成产品需求,并且在一定程度上方便用户的使用,降低用户的学习成本。例如,游戏开发引擎需要集成第三方sdk(如登录、支付、聊天、实时语音等功能)来实现相应的功能。
3.然而,在集成第三方sdk时,会涉及到同一应用中的不同功能层之间的相互调用问题,而现有技术中,由于不同功能层之间在相互调时是在不同的线程实现的,在相互调用的过程中,若线程控制不当,会导致线程死锁的问题,进而引发卡顿问题。


技术实现要素:

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.一种可选的实施方式中,所述引擎层的开发语言为c#语言,所述原生层的开发语言为java语言。
30.本公开实施例还提供一种任务处理装置,所述装置包括:
31.调用模块,用于接收引擎层发送的任务调用指令,所述任务调用指令用于通过所述引擎层的主线程调用原生层的目标任务;
32.获取模块,用于在调用所述目标任务的过程中,获取所述主线程的消息循环执行单元;
33.派发模块,用于在接收到所述原生层发送的针对所述任务调用指令的任务反馈指
令的情况下,基于所述消息循环执行单元,将与所述目标任务对应的任务反馈信息发送至所述主线程;所述引擎层通过所述主线程接收所述任务反馈信息。
34.一种可选的实施方式中,所述获取模块具体用于:
35.基于所述桥接层,在调用所述目标任务的过程中,获取所述主线程的消息循环执行单元;
36.创建线程通信工具的实例对象,其中,所述线程通信工具的实例对象以静态变量保存;
37.将所述消息循环执行单元保存至所述线程通信工具的实例对象中。
38.一种可选的实施方式中,所述派发模块具体用于:
39.基于所述线程通信工具的实例对象,将与所述目标任务对应的任务反馈信息发送至所述主线程。
40.一种可选的实施方式中,所述获取模块具体还用于:
41.基于所述桥接层,在调用所述目标任务的过程中,判断所述线程通信工具的实例对象是否存在;
42.在所述线程通信工具的实例对象不存在的情况下,获取所述主线程的消息循环执行单元。
43.一种可选的实施方式中,所述派发模块具体用于:
44.基于所述线程通信工具的实例对象的任务派发方法,将与所述目标任务对应的任务反馈信息发送至所述主线程。
45.一种可选的实施方式中,所述派发模块具体用于:
46.判断所述线程通信工具的实例对象是否存在;
47.在所述线程通信工具的实例对象存在的情况下,将所述任务反馈信息发送至所述主线程。
48.一种可选的实施方式中,所述派发模块具体还用于:
49.在所述线程通信工具的实例对象不存在的情况下,将所述任务反馈信息发送至所述原生层的目标线程;其中,所述目标线程由所述目标任务的类型确定。
50.本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述任务处理方法中的步骤。
51.本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述任务处理方法中的步骤。
52.为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
53.为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图
仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
54.图1为本公开实施例所提供的一种任务处理方法的流程图;
55.图2为本公开实施例所提供的一种引擎层和原生层之间相互调用的示意图;
56.图3为本公开实施例所提供的一种获取主线程的消息循环执行单元方法的流程图;
57.图4为本公开实施例所提供的另一种获取主线程的消息循环执行单元方法的流程图;
58.图5为本公开实施例所提供的一种任务反馈信息派发执行方法的流程图;
59.图6为本公开实施例所提供的一种任务处理装置的结构图;
60.图7为本公开实施例所提供的一种电子设备的示意图。
具体实施方式
61.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
62.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
63.本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
64.目前,移动应用程序通过集成sdk(software development kit,软件开发工具包)扩展业务场景偏多,使用sdk的目的是为了快速,高效的完成产品需求,并且在一定程度上方便用户的使用,降低用户的学习成本。例如,游戏开发引擎需要集成第三方sdk(如登录、支付、聊天、实时语音等功能)来实现相应的功能。
65.然而,在集成第三方sdk时,会涉及到同一应用中的不同功能层之间的相互调用问题,而现有技术中,由于不同功能层之间在相互调时是在不同的线程实现的,在相互调用的过程中,若线程控制不当,会导致线程死锁的问题,进而引发卡顿问题。
66.基于上述研究,本公开实施例提供了一种任务处理方法,可以将所述引擎层和所述原生层之间的相互调用的线程统一在主线程中,可以避免因不同线程之间线程死锁的问题,进而避免由于线程死锁导致的卡顿问题,从而可以提高两个功能层之间的调用性能和效率。
67.针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是
发明人在本公开过程中对本公开做出的贡献。
68.为便于对本实施例进行理解,首先对本公开实施例所公开的一种任务处理方法进行详细介绍,本公开实施例所提供的任务处理方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(user equipment,ue)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(personal digital assistant,pda)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该任务处理方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
69.下面以执行主体为终端设备为例对本公开实施例提供的任务处理方法加以说明。
70.请参见图1,图1为本公开实施例提供的一种任务处理方法的流程图。如图1中所示,本公开实施例提供的任务处理方法包括以下步骤s101~s103:
71.s101,接收引擎层发送的任务调用指令,所述任务调用指令用于通过所述引擎层的主线程调用原生层的目标任务。
72.该步骤中,引擎层向原生层发送任务调用指令,当原生层接收到引擎层发送的任务调用指令的情况下,可以通过所述引擎层的主线程调用所述原生层的目标任务,其中,所述引擎层的开发语言与所述原生层的开发语言不同。
73.在一些实施方式中,所述引擎层的开发语言为c#语言,所述原生层的开发语言为java语言。在另一些实施方式中,所述引擎层和所述原生层的语言还可以是其他语言,例如,c/c++、delphi、python、visual basic等,在此不做限定,只要引擎层和原生层的开发语言不同即可。
74.所述目标任务包括所述引擎层所需的第三方软件开发工具包sdk,所述sdk可以实现游戏的登录、支付、聊天以及实时语音的功能。
75.在实际应用中,所述引擎层和所述原生层在开发阶段是分别开发的,在运行阶段,所述引擎层和所述原生层均运行在android操作系统中。
76.另外,在一些实施方式中,所述引擎层与所述原生层之间存在桥接层,其中,所述桥接层为所述引擎层与所述原生层之间相互调用的中间层。
77.示例性的,请参见图2,图2为本公开实施例所提供的引擎层和原生层的相互调用示意图。如图2中所示,所述引擎层的开发语言为c#语言,所述原生层的开发语言为java语言,引擎层和原生层之间的相互调用通过桥接层实现。其中,引擎层调用原生层的线程会统一收敛到所述主线程,所述主线程为引擎层的渲染线程。
78.另外,在引擎层调用原生层的过程中,所述主线程会执行到桥接层的第一收口方法handlemsgfromunity,并通过桥接层中的自定义bridge方法实现与原生层的通信,其中,所述第一收口方法handlemsgfromunity为引擎层调用原生层时,桥接层中的一个入口方法。
79.s102,在调用所述目标任务的过程中,获取所述主线程的消息循环执行单元。
80.该步骤中,所述消息循环执行单元,即looper,在通过所述引擎层的主线程调用所述原生层的目标任务时,可以从所述主线程中获取所述主线程的looper。
81.其中,所述looper为安卓系统中线程的looper,每个线程都有一个与其对应的looper,可以从消息队列里面不断地的读取消息并执行相应的操作。
82.本公开实施例针对步骤s102提供进一步描述,请参见图3,图3为本公开实施例提供的获取主线程的消息循环执行单元方法的流程图。
83.如图3中所示,本公开实施例提供的获取主线程的消息循环执行单元方法包括以下步骤s1021~s1023:
84.s1021,基于所述桥接层,在调用所述目标任务的过程中,获取所述主线程的消息循环执行单元。
85.该步骤中,基于所述引擎层与所述原生层之间的桥接层,在引擎层调用原生层的所述目标任务的过程中,首先获取所述主线程的looper。
86.具体的,请再次参见图2,由于引擎层调用原生层的线程会统一收敛到所述主线程,所述主线程为引擎层的渲染线程,且所述主线程统一收口在桥接层中的第一收口方法handlemsgfromunity,则可以在所述handlemsgfromunity方法调用过程中获取所述主线程的looper。
87.其中,获取所述主线程的消息循环执行单元的java代码为:
88.looper looper=looper.mylooper();
89.s1022,创建线程通信工具的实例对象,其中,所述线程通信工具的实例对象以静态变量保存。
90.该步骤中,在获取到所述looper后,通过创建线程通信工具的实例对象,所述线程通信工具的实例对象用于保存所述looper,其中,所述线程通信工具的实例对象以静态变量的形式保存,所述线程通信工具handler为安卓系统提供的线程间通信机制,可以与消息循环执行单元结合使用,用于控制某个任务在某个线程执行。
91.示例性的,创建线程通信工具的实例对象senginemainhandler的java代码为:
92.senginemainhandler=new handler();
93.s1023,将所述消息循环执行单元保存至所述线程通信工具的实例对象中。
94.该步骤中,所述线程通信工具的实例对象,即senginemainhandler,将获取到的所述looper保存至创建好的senginemainhandler中。
95.示例性的,基于创建好的所述线程通信工具的实例对象senginemainhandler,为其指定所述looper的java代码为:
96.senginemainhandler=new handler(looper);
97.s103,在接收到所述原生层发送的针对所述任务调用指令的任务反馈指令的情况下,基于所述消息循环执行单元,将与所述目标任务对应的任务反馈信息发送至所述主线程;所述引擎层通过所述主线程接收所述任务反馈信息。
98.该步骤中,原生层在接收到引擎层发送的任务调用指令后,原生层会向引擎层回调与所述目标任务对应的反馈信息,在接收到原生层发送的任务反馈指令的情况下,基于从主线程得到的消息循环执行单元,可以将与所述目标任务对应的任务反馈信息发送至所述主线程。
99.其中,所述任务反馈信息可以包括引擎层所需的第三方软件开发工具包sdk、引擎层调用原生层的方法的结果反馈,和/或原生层发送的事件监听,所述事件监听为使引擎层可以及时感知到原生层发送的消息而设置的监听机制。
100.示例性的,针对所述事件监听进行举例说明,由于引擎层需要及时感知原生层有
新消息到来,并通知原生层需要使用事件名为onmessagechange的事件通知给引擎层,此过程即为引擎层向原生层注册了一个事件监听,也即当原生层收到新消息时,原生层会发送事件名为onmessagechange的通知给引擎层,这样引擎层就可以及时感知到新消息。
101.示例性的,请再次参见图2,在原生层调用引擎层的过程中,通过调用callbackresult方法和sendevent方法将所述任务反馈信息发送至桥接层,并且x线程都会执行到桥接层的第二收口方法callengine,并基于所述消息循环执行单元,将与所述目标任务对应的任务反馈信息发送至所述主线程,其中,x线程由所述目标任务确定。
102.可以理解,在一些实施方式中,根据前文所述,由于已将获取到的looper保存至创建好的senginemainhandler中,因此,针对步骤s103,具体地,可以包括步骤s1031(参见图4):基于所述线程通信工具的实例对象的任务派发方法,将与所述目标任务对应的任务反馈信息发送至所述主线程。
103.例如,在原生层调用引擎层时,基于创建好的所述线程通信工具的实例对象senginemainhandler的任务派发方法post,可以实现将与所述目标任务对应的任务反馈信息发送至所述主线程。
104.示例性的,请再次参见图2,由于引擎层调用原生层的sdk不同,在原生层调用引擎层时的调用线程受到sdk的影响,以使原生层调用引擎层的线程不确定,但原生层调用引擎层的任一线程均会调用桥接层的第二收口方法callengine,所以可以在执行第二收口方法callengine时,基于所述线程通信工具的实例对象senginemainhandler的post方法,将与所述目标任务对应的任务反馈信息发送至所述主线程,其中,所述第二收口方法callengine为原生层调用引擎层时,桥接层中的另一个收口方法。
105.需要特别说明的是,图2中所示的派发事件与引擎层调用原生层的方法的结果反馈回调是在x线程中实现的,然后,当x线程执行到第二收口方法callengine时,基于所述线程通信工具的实例对象的post方法,会将与所述目标任务对应的任务反馈信息发送至所述主线程。
106.参见图4所示,为本公开实施例提供的另一种获取主线程的消息循环执行单元方法的流程图。其中,与图3中所示的方法不同的是,本实施方式中,步骤s1021包括以下s10211~s10212:
107.s10211,基于所述桥接层,在调用所述目标任务的过程中,判断所述线程通信工具的实例对象是否存在;若否,则执行步骤s10212;若是,则执行步骤s1031。
108.s10212,在所述线程通信工具的实例对象不存在的情况下,获取所述主线程的消息循环执行单元。
109.该步骤中,为了减小系统开销,提高两个功能层之间的调用性能,在获取所述主线程的looper之前,基于所述桥接层,在调用所述目标任务的过程中,可以首先判断所述senginemainhandler是否存在,若存在,则可以直接通过所述senginemainhandler执行所述主线程的looper,若不存在,则进一步获取所述主线程的looper。
110.参见图5所示,为本公开实施例提供的一种任务反馈信息派发执行方法的流程图。在一些实施方式中,步骤s1031包括以下s10311~s10313:
111.s10311,判断所述线程通信工具的实例对象是否存在;若是,则执行步骤s10312;若否,则执行步骤s10313。
112.该步骤中,由于在本公开实施例中,需要基于所述senginemainhandler,实现所述两个功能层之间的调用在一个线程中完成,所以,在原生层调用引擎层时,可以首先判断senginemainhandler是否存在,如果存在,则在调用过程中可以直接根据已存在的senginemainhandler执行步骤s10312,如果不存在,则执行步骤s10313。
113.s10312,基于所述线程通信工具的实例对象的任务派发方法,将与所述目标任务对应的任务反馈信息发送至所述主线程。
114.该步骤中,在所述线程通信工具的实例对象存在的情况下,通过执行senginemainhandler的任务派发post方法,并且senginemainhandler可以自动执行其保存的所述looper,如此,即可将与所述目标任务对应的任务反馈信息发送至所述主线程。
115.s10313,将所述任务反馈信息发送至所述原生层的目标线程;其中,所述目标线程由所述目标任务的类型确定。
116.可以理解,若在执行所述senginemainhandler的任务派发(post)方法之前,在所述senginemainhandler不存在的情况下,无法将所述任务反馈信息发送至所述主线程,本公开实施例中,为使原生层可以调用引擎层,则需要将任务反馈信息发送至原生层的目标线程。
117.其中,所述原生层的目标线程为原生层调用引擎层的不确定线程,由所述目标任务的类型确定,也即前述提到的x线程。例如,所述原生层的目标线程可以根据原生层的sdk内部实现决定,可以是其他异步线程,也可以是安卓主线程。
118.本公开实施例提供的任务处理方法,基于从所述主线程获取的消息循环执行单元,将与所述目标任务对应的任务反馈信息发送至所述主线程,从而实现将所述引擎层和所述原生层之间的相互调用的线程统一在主线程中,可以从根源上避免线程死锁的问题,进而避免由于线程死锁导致的卡顿问题,并且可以提高引擎层和原生层之间的调用性能和效率。
119.本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
120.基于同一发明构思,本公开实施例中还提供了与任务处理方法对应的任务处理装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述任务处理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
121.请参见图6,图6为本公开实施例提供的一种任务处理装置的结构图。
122.如图6中所示,本公开实施例提供的任务处理装置600,包括:
123.调用模块610,用于接收引擎层发送的任务调用指令,所述任务调用指令用于通过所述引擎层的主线程调用原生层的目标任务;
124.获取模块620,用于在调用所述目标任务的过程中,获取所述主线程的消息循环执行单元;
125.派发模块630,用于在接收到所述原生层发送的针对所述任务调用指令的任务反馈指令的情况下,基于所述消息循环执行单元,将与所述目标任务对应的任务反馈信息发送至所述主线程;所述引擎层通过所述主线程接收所述任务反馈信息。
126.一种可选的实施方式中,所述获取模块620具体用于:
127.基于所述桥接层,在调用所述目标任务的过程中,获取所述主线程的消息循环执行单元;
128.创建线程通信工具的实例对象,其中,所述线程通信工具的实例对象以静态变量保存;
129.将所述消息循环执行单元保存至所述线程通信工具的实例对象中。
130.一种可选的实施方式中,所述派发模块630具体用于:
131.基于所述线程通信工具的实例对象,将与所述目标任务对应的任务反馈信息发送至所述主线程。
132.一种可选的实施方式中,所述获取模块620具体用于:
133.基于所述桥接层,在调用所述目标任务的过程中,判断所述线程通信工具的实例对象是否存在;
134.在所述线程通信工具的实例对象不存在的情况下,获取所述主线程的消息循环执行单元。
135.一种可选的实施方式中,所述派发模块630具体用于:
136.基于所述线程通信工具的实例对象的任务派发方法,将与所述目标任务对应的任务反馈信息发送至所述主线程。
137.一种可选的实施方式中,所述派发模块630具体用于:
138.判断所述线程通信工具的实例对象是否存在;
139.在所述线程通信工具的实例对象存在的情况下,将所述任务反馈信息发送至所述主线程。
140.一种可选的实施方式中,所述派发模块630具体还用于:
141.在所述线程通信工具的实例对象不存在的情况下,将所述任务反馈信息发送至所述原生层的目标线程;其中,所述目标线程由所述目标任务的类型确定。
142.关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
143.基于同一技术构思,本公开实施例还提供了一种电子设备。参照图7所示,为本公开实施例提供的电子设备700的结构示意图,包括处理器701、存储器702、和总线703。其中,存储器702用于存储执行指令,包括内存7021和外部存储器7022;这里的内存7021也称内存储器,用于暂时存放处理器701中的运算数据,以及与硬盘等外部存储器7022交换的数据,处理器701通过内存7021与外部存储器7022进行数据交换。
144.本技术实施例中,存储器702具体用于存储执行本技术方案的应用程序代码,并由处理器701来控制执行。也即,当电子设备700运行时,处理器701与存储器702之间通过总线703通信,使得处理器701执行存储器702中存储的应用程序代码,进而执行前述任一实施例中的方法。
145.处理器701可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器
或者该处理器也可以是任何常规的处理器等。
146.其中,存储器702可以是,但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。
147.可以理解的是,本技术实施例示意的结构并不构成对电子设备700的具体限定。在本技术另一些实施例中,电子设备700可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
148.本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的任务处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
149.本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的任务处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
150.本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的任务处理方法的步骤,具体可参阅上述方法实施例,在此不再赘述。
151.其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
152.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和终端的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、终端和方法,可以通过其它的方式实现。以上所描述的终端实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
153.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
154.另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
155.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开
的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
156.最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1