一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种线程管理方法及装置与流程

2021-10-22 22:32:00 来源:中国专利 TAG:线程 装置 操作系统 方法 管理


1.本技术涉及操作系统技术领域,具体涉及一种线程管理方法及装置。


背景技术:

2.为了满足用户对电子设备的多样化需求,电子设备中通常安装有多种应用程序,并且,每一个应用程序往往可实现多种功能,以满足用户需求。
3.其中,应用程序在实现每一功能时,需要执行该功能相对应的任务。为了提高应用程序执行任务的效率,目前电子设备的操作系统通常开放并发能力。在应用程序的运行过程中,开放并发能力的操作系统允许所述应用程序根据自身需要执行的任务,创建用于执行该任务的各个线程,并由所述应用程序创建的各个线程执行相应的任务。
4.但是,发明人在本技术的研究过程中发现,当应用程序需要执行较多任务时,应用程序往往会创建大量线程,出现应用程序对线程滥用的情况,造成线程数量的爆发,而线程数量的爆发往往会加重操作系统的负载,降低操作系统的运行效率。


技术实现要素:

5.为了解决现有技术应用的线程管理方法中,应用程序会创建大量线程,导致线程数量爆发的问题,本技术实施例公开一种线程管理方法。
6.第一方面,本技术实施例公开一种线程管理方法,包括:
7.操作系统确定应用程序的至少一条第一信息,所述第一信息用于指示所述应用程序待执行的第一任务;
8.所述操作系统将所述至少一个第一任务分配至相应的第一任务队列;
9.所述操作系统根据自身当前的负载水平和所述第一任务队列的类型,为所述第一任务队列分配线程。
10.通过本技术实施例公开的方案,能够由操作系统对应用程序所需的线程进行分配,并且,操作系统在分配线程的过程中,会考虑自身的负载水平,从而避免出现应用程序对线程滥用的情况,减少线程数量爆发的现象,使操作系统能够高效运行。
11.一种可选的设计中,所述操作系统根据自身当前的负载水平和所述第一任务队列的类型,为所述第一任务队列分配线程,包括:
12.所述操作系统确定所述第一任务队列的优先级;
13.所述操作系统根据所述第一任务队列的优先级,以及第一线程池中空闲的线程对应的任务类型,确定可分配线程的第一目标任务队列,所述第一线程池包括所述操作系统根据自身当前的负载水平创建的空闲的线程;
14.所述操作系统根据所述第一目标任务队列的类型,为所述第一目标任务队列分配所述第一线程池中的空闲的线程。
15.通过上述步骤,操作系统能够根据第一任务队列的优先级,为第一任务队列分配第一线程池中空闲的线程,从而无需再临时为所述第一目标任务队列创建线程。因此,这一
方案能够提高所述操作系统为应用程序分配线程的速度,相应的,提高应用程序通过线程执行任务的速度,为用户带来更好的体验。
16.一种可选的设计中,所述操作系统根据所述第一目标任务队列的类型,为所述第一目标任务队列分配所述第一线程池中的空闲的线程,包括:
17.当所述第一目标任务队列包括串行任务队列时,所述操作系统为所述串行任务队列分配所述第一线程池中的一个空闲的线程;
18.当所述第一目标任务队列包括并行任务队列时,所述操作系统根据所述并行任务队列中的任务数量,为所述并行任务队列分配所述第一线程池中的n个空闲的线程,n的最大值为所述并行任务队列中包括的任务的数量。
19.通过上述步骤,操作系统为串行任务队列分配第一线程池中的一个空闲的线程,以便这一个空闲的线程依次执行串行任务队列中的各个任务,从而能够减少线程的浪费。并且,所述操作系统可为并行任务队列分配n个空闲的线程,从而提高并行任务队列的处理效率。
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.通过上述步骤,所述操作系统可生成第一线程池中的线程。并且,所述操作系统所生成的目标线程,为第一应用程序应用频率较高的线程,而所述第一应用程序为电子设备内应用频率较高的应用程序。这种情况下,所述操作系统所生成的线程为应用频率较高的线程,从而能够使所述第一线程池中的线程能够满足大多数场景下的需求。
46.一种可选的设计中,所述操作系统的负载水平通过以下至少一种参数确定:运行所述操作系统的处理器的空闲比、当前已经创建的线程的数量、所述处理器的内存的占用情况和安装所述操作系统的电子设备的存储器的读写情况。
47.一种可选的设计中,还包括:
48.所述操作系统将自身待执行的至少一个第二任务,分配至相应的第二任务队列;
49.所述操作系统确定所述第二任务队列的优先级;
50.所述操作系统根据所述第二任务队列的优先级,为所述第二任务队列分配第二线程池中包括的空闲的线程,所述第二线程池包括的空闲的线程由所述操作系统根据自身当前的负载水平创建。
51.第二方面,本技术实施例公开一种线程管理方法,包括:
52.当应用程序需要执行第一任务时,通过所述第一任务对应的第一应用程序编程接口api,向操作系统提交第一信息,所述第一信息用于指示所述第一任务;
53.所述应用程序通过所述操作系统为所述第一任务分配的线程,执行所述第一任务。
54.通过本技术实施例,用户程序无需创建第一任务的线程,而是由操作系统对应用程序所需的线程进行分配,即由所述操作系统为用户程序分配所述第一任务的线程,从而避免出现应用程序对线程滥用的情况,减少线程数量爆发的现象,使操作系统能够高效运行。
55.一种可选的设计中,还包括:
56.当所述应用程序在提交所述第一信息之后的第一时间段内,未获取所述操作系统为所述第一任务分配的线程时,所述应用程序通过所述第一任务对应的第二api,向所述操作系统传输第一请求;
57.所述应用程序在获取所述第一请求对应的第一反馈之后,生成所述第一任务对应的线程,并通过所述线程执行所述第一任务。
58.通过上述步骤,如果所述应用程序一直未获取所述操作系统为所述任务分配的线程时,可调用所述第二api。所述操作系统在确定所述应用程序调用所述第二api之后,通常支持所述应用程序生成所述任务对应的线程,从而避免应用程序等待过长的时间。
59.一种可选的设计中,还包括:
60.所述应用程序通过所述第一任务对应的第一api,向所述操作系统提交所述第一任务的第二信息,所述第二信息用于指示所述第一任务的优先级。
61.通过上述步骤,所述操作系统可获取所述应用程序提交的所述第一任务的第二信息,并通过所述第二信息,确定所述第一任务所在的任务队列的优先级。
62.第三方面,本技术实施例公开一种线程管理装置,包括:
63.处理器和应用程序编程接口api;
64.所述api用于获取应用应用程序的至少一条第一信息,所述第一信息用于指示所述应用程序待执行的第一任务;
65.所述处理器用于将所述至少一个第一任务分配至相应的第一任务队列,并根据所述处理器的操作系统当前的负载水平和所述第一任务队列的类型,为所述第一任务队列分配线程。
66.一种可选的设计中,所述处理器具体用于,确定所述第一任务队列的优先级;
67.根据所述第一任务队列的优先级,以及第一线程池中空闲的线程对应的任务类型,确定可分配线程的第一目标任务队列,所述第一线程池包括根据所述操作系统当前的负载水平创建的空闲的线程;
68.根据所述第一目标任务队列的类型,为所述第一目标任务队列分配所述第一线程池中的空闲的线程。
69.一种可选的设计中,所述处理器具体用于,当所述第一目标任务队列包括串行任务队列时,为所述串行任务队列分配所述第一线程池中的一个空闲的线程;
70.当所述第一目标任务队列包括并行任务队列时,根据所述并行任务队列中的任务数量,为所述并行任务队列分配所述第一线程池中的n个空闲的线程,n的最大值为所述并行任务队列中包括的任务的数量。
71.一种可选的设计中,所述处理器还用于,在所述第一目标任务队列中的至少一个任务完成之后,将为所述第一目标任务队列分配的线程回收至所述第一线程池,或者将为所述目标任务队列分配的线程调度至其他任务队列,或者销毁为所述第一目标任务队列分配的线程。
72.一种可选的设计中,所述处理器还用于,当所述第一任务队列中包括第二目标任务队列,并且所述第一线程池中不包括用于执行所述第二目标任务队列中的任务的线程时,为所述第二目标任务队列创建并分配相应的线程,或者支持所述应用程序为所述第二目标任务队列创建相应的线程;
73.其中,所述第二目标任务队列为优先级高于第一优先级的第一任务队列,和/或,所述第二目标任务队列中包括目标任务。
74.一种可选的设计中,所述处理器用于根据所述应用程序提交的所述至少一个第一任务的第二信息,确定所述第一任务队列的优先级;
75.和/或,
76.所述处理器用于根据所述应用程序的第三信息,确定所述第一任务队列的优先级,所述第三信息包括以下至少一种:所述应用程序的运行平台、所述应用程序当前是否可见、所述应用程序的功能当前是否可感知和所述应用程序的应用频率;
77.和/或,
78.所述处理器用于根据所述第一任务队列中包括的任务的类型,确定所述第一任务队列的优先级;
79.和/或,
80.所述处理器用于根据所述第一任务队列的等待时长,确定所述第一任务队列的优先级。
81.一种可选的设计中,当所述第三信息包括所述应用程序的运行平台时,所述处理器用于确定第一应用程序的第一任务队列的优先级高于第二应用程序的第一任务队列的优先级,所述第一应用程序的运行平台为前台,所述第二应用程序的运行平台为后台;
82.当所述第三信息包括所述应用程序当前是否可见时,所述处理器用于确定第三应用程序的第一任务队列的优先级高于第四应用程序的第一任务队列的优先级,所述第三应用程序在当前可见,所述第二应用程序在当前不可见;
83.当所述第三信息包括所述应用程序的功能当前是否可感知时,所述处理器用于确定第五应用程序的第一任务队列的优先级高于第六应用程序的第一任务队列的优先级,所述第五应用程序的功能当前可感知,所述第六应用程序的功能当前不可感知;
84.当所述第三信息包括所述应用程序的应用频率时,所述处理器用于确定第七应用程序的第一任务队列的优先级高于第八应用程序的第一任务队列的优先级,所述第七应用程序的应用频率高于所述第八应用程序的应用频率。
85.一种可选的设计中,所述处理器还用于,确定在第一时间段内,应用频率高于第一阈值的至少一个第一应用程序;
86.确定在所述第一时间段内,所述第一应用程序应用的频率高于第二阈值的目标线程;
87.根据所述操作系统当前的负载水平,确定可支持的所述目标线程的数量,并生成相应数量的所述目标线程,所述目标线程位于所述第一线程池。
88.一种可选的设计中,所述操作系统的负载水平通过以下至少一种参数确定:运行所述操作系统的处理器的空闲比、当前已经创建的线程的数量、所述处理器的内存的占用情况和安装所述操作系统的电子设备的存储器的读写情况。
89.一种可选的设计中,所述处理器还用于,将自身待执行的至少一个第二任务,分配至相应的第二任务队列;
90.确定所述第二任务队列的优先级;
91.根据所述第二任务队列的优先级,为所述第二任务队列分配第二线程池中包括的空闲的线程,所述第二线程池包括的空闲的线程由所述操作系统根据自身当前的负载水平创建。
92.第四方面,本技术实施例公开一种线程管理装置,包括:
93.处理器和第一应用程序编程接口api;
94.当应用程序需要执行第一任务时,所述第一任务对应的第一api用于向操作系统提交第一信息,所述第一信息用于指示所述第一任务;
95.所述处理器用于通过所述操作系统为所述第一任务分配的线程,执行所述第一任务。
96.一种可选的设计中,还包括:
97.第二api;
98.当在提交所述第一信息之后的第一时间段内,未获取所述操作系统为所述第一任务分配的线程时,所述第一任务对应的所述第二api用于向所述操作系统传输第一请求;
99.所述处理器还用于,在获取所述第一请求对应的第一反馈之后,生成所述第一任务对应的线程,并通过所述线程执行所述第一任务。
100.一种可选的设计中,所述处理器还用于,通过所述第一任务对应的第一api,向所述操作系统提交所述第一任务的第二信息,所述第二信息用于指示所述第一任务的优先级。
101.第五方面,本技术实施例公开一种终端装置,包括:
102.至少一个处理器和存储器,
103.所述存储器,用于存储程序指令;
104.所述处理器,用于调用并执行所述存储器中存储的程序指令,以使所述终端装置执行第一方面任一项所述的线程管理方法。
105.第六方面,本技术实施例公开一种终端装置,包括:
106.至少一个处理器和存储器,
107.所述存储器,用于存储程序指令;
108.所述处理器,用于调用并执行所述存储器中存储的程序指令,以使所述终端装置
执行第二方面任一项所述的线程管理方法。
109.第七方面,本技术实施例公开一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行如第一方面任一项所述的线程管理方法。
110.第八方面,本技术实施例公开一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行如第二方面任一项所述的线程管理方法。
111.第九方面,本技术实施例公开一种包含指令的计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备可实施第一方面对应的实施例中的全部或部分步骤。
112.第十方面,本技术实施例公开一种包含指令的计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备可实施第二方面对应的实施例中的全部或部分步骤。
113.在本技术实施例公开的线程管理方法中,应用程序可通过api向操作系统提交第一信息,所述第一信息用于指示应用程序待执行的至少一个第一任务。通过所述第一信息,所述操作系统将应用程序待执行的至少一个第一任务分配至相应的第一任务队列,并根据自身当前的负载水平和第一任务队列的类型,为所述第一任务队列分配线程。
114.通过本技术实施例公开的方案,能够由操作系统对应用程序所需的线程进行分配,并且,操作系统在分配线程的过程中,会考虑自身的负载水平,从而避免出现应用程序对线程的滥用,避免出现线程数量爆发的情况,使操作系统能够高效运行。
115.进一步的,在本技术实施例公开的方案中,操作系统可根据自身的负载水平创建第一线程池,所述第一线程池中包括所述操作系统根据自身当前的负载水平创建的空闲的线程。当为所述第一任务队列分配线程时,所述操作系统将所述第一线程池中的空闲的线程分配至所述第一任务队列,从而能够提高第一任务队列获取所需的线程的速度,提高应用程序执行任务的效率。
附图说明
116.为了更清楚地说明本技术的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
117.图1为本技术实施例公开的一种电子设备的软件结构框图的示例图;
118.图2为本技术实施例公开的一种线程管理方法的工作流程示意图;
119.图3为本技术实施例公开的一种线程管理方法中的数据交互示意图;
120.图4为本技术实施例公开的又一种线程管理方法的工作流程示意图;
121.图5为本技术实施例公开的一种线程管理方法的场景示意图;
122.图6为本技术实施例公开的又一种线程管理方法的场景示意图;
123.图7为本技术实施例公开的又一种线程管理方法的场景示意图;
124.图8为本技术实施例公开的又一种线程管理方法的工作流程示意图;
125.图9为本技术实施例公开的一种线程管理装置的结构示意图;
126.图10为本技术实施例公开的又一种线程管理装置的结构示意图;
127.图11为本技术实施例公开的一种终端装置的结构示意图。
具体实施方式
128.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
129.其中,在本技术实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,在本技术实施例的描述中,“多个”是指两个或多于两个。
130.以下,术语“第一”、“第二”仅用于描述目的。在本技术实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
131.本技术实施例所公开的线程管理方法可应用于多种电子设备。在一些实施例中,所述电子设备可以是手机、平板电脑、桌面型、膝上型、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、手持计算机、上网本、个人数字助理(personal digital assistant,pda)、可穿戴电子设备和智能手表等。该电子设备中可运行多种应用程序,其中,所述应用程序可包括电子设备中预安装的应用程序,也可为用户根据自身需求,在电子设备中安装的应用程序。例如,当用户需要收发邮件时,可通过应用市场等途径,在电子设备中安装邮件相关的应用程序。
132.其中,图1为本技术实施例的一种电子设备的软件结构框图的示例图。
133.在该分层架构中,将电子设备的软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口数据交互。在一些实施例中,将android系统分为四层,从上至下分别为应用层、框架层、系统库和内核层,其中,框架层、系统库和内核层共同构成电子设备的操作系统。
134.应用层可以包括一系列应用程序,该应用程序可以包括在出厂时,电子设备内默认安装的应用程序,还可以包括电子设备在使用过程中,由用户安装的应用程序。如图1所示,应用层内可以安装相机、图库、日历、通话、地图、导航、蓝牙、音乐、视频和短信息等应用程序,并且还包括用户根据自身的使用需求安装在电子设备内的应用程序,例如图1中包括的第一应用程序和第二应用程序。所述第一应用程序和第二应用程序可以为数据交互类的应用程序、购物类的应用程序、音乐播放类的应用程序和游戏类的应用程序等,本技术实施例对此不做限定。
135.其中,在应用层中的应用程序往往可执行多项任务。例如,音乐播放类的应用程序不仅能够播放用户所选择的音乐,往往还能够采集用户的喜好,根据用户的喜好推荐相应的音乐,以及展示用户朋友推荐的音乐等。
136.另外,所述应用程序包括应用程序接口(application programming interface,api),并可通过api与操作系统进行数据交互。
137.框架层提供api和编程框架,通过该api,操作系统可与应用层的应用程序进行数据交互,框架层包括一些预先定义的函数。
138.如图1所示,框架层可以包括显示策略服务和电源管理服务(power manager service,pms)、显示管理服务(display manager service,dms)。当然,框架层中还可以包
括活动管理器、窗口管理器、内容提供器、视图系统、电话管理器、资源管理器和通知管理器等,本技术实施例对此不作任何限制。
139.系统库中通常包括二/三维图形处理库、表面管理器和媒体库等,内核层提供驱动,该驱动可包括显示驱动、摄像头驱动、音频驱动和传感器驱动等。
140.需要说明的是,本技术实施例虽然以android系统为例进行说明,但是其基本原理同样适用于基于ios或windows等操作系统的电子设备。
141.一个应用程序往往可执行多项任务,为了提高应用程序执行任务的效率,电子设备的操作系统往往开放了并发能力。开放了并发能力的操作系统支持应用程序同时创建多个线程,并通过所述多个线程分别执行相应的任务,从而提高应用程序的任务执行效率。
142.在现有技术中,应用程序可根据自身需要执行的任务,创建相应的线程。其中,该应用程序中通常设置有各个任务分别对应的线程接口,当应用程序需要执行某一任务时,该应用程序会调用该任务对应的线程接口。支持并发能力的操作系统确定应用程序调用线程接口之后,允许所述应用程序创建用于执行该任务的线程。也就是说,在现有技术中,应用程序创建的线程数量由应用程序所需执行的任务确定,操作系统不会对应用程序创建的线程进行管控。
143.这种情况下,在现有技术中,当应用程序需要执行较多任务时,应用程序往往会创建大量线程,从而造成线程数量的爆发。而线程数量的爆发往往会加重操作系统的负载,降低操作系统的运行效率。
144.下面将结合附图对本实施例的实施方式进行详细描述。
145.为了解决现有技术应用的线程管理方法中,应用程序会创建大量线程,导致线程数量爆发的问题,本技术实施例公开一种线程管理方法。
146.参见图2所示的工作流程示意图,本技术实施例公开的线程管理方法中,包括以下步骤:
147.步骤s11、操作系统确定应用程序的至少一条第一信息,所述第一信息用于指示所述应用程序待执行的第一任务。
148.参见图1所示的示意图,应用程序包括api,并可通过api与操作系统进行数据交互。在本技术实施例中,应用程序设置有用于向所述操作系统提交第一信息的第一api,并可通过所述第一api,向所述操作系统提交第一信息。并且,所述应用程序的第一api与应用程序的任务通常为一一对应的关系,即所述应用程序的一个第一api,通常用于向所述操作系统提交其中一个任务的第一信息。当应用程序需要执行多个第一任务时,所述应用程序可配置多个第一api,并分别通过各个第一任务对应的第一api,向所述操作系统提交所述第一任务的第一信息。
149.这种情况下,在获取所述第一信息之后,所述操作系统可根据所述第一信息,确定所述应用程序待执行的至少一个第一任务。
150.步骤s12、所述操作系统将所述至少一个第一任务分配至相应的第一任务队列。
151.在本技术实施例中,所述操作系统可预先生成多种类型的第一任务队列,并将第一任务分配至相应的第一任务队列。
152.示例性的,根据各个任务之间是否存在时间依赖这一划分参数,划分所述第一任务队列的类型,这种情况下,所述第一任务队列的类型可包括串行任务队列和并行任务队
列,相应的,所述操作系统在分配所述第一任务时,可根据各个第一任务之间是否具有时间依赖,确定所述第一任务所对应的第一任务队列。
153.例如,当任务a与任务b之间具有较强的时间依赖,即在执行完任务a之后,才能执行任务b时,所述操作系统会将所述a与任务b分配至串行任务队列中。另外,当任务a与任务b之间没有时间依赖关系时,即任务a与任务b可同时执行,或者,可以在其中一个任务执行完成之后,再执行另一个任务,这种情况下,则所述操作系统会将所述a与任务b分配至并行任务队列中。
154.或者,所述操作系统还可根据任务的内容这一参数,划分所述第一任务队列的类型。相应的,所述操作系统在确定所述第一任务之后,可根据所述第一任务的内容,将所述第一任务分配至相应的任务队列。
155.例如,有些应用程序需要更新自身的用户界面(user interface,ui),这种情况下,该应用程序需要执行ui更新的任务。这种情况下,所述操作系统预先创建ui更新任务对应的第一任务队列。在通过所述第一信息,确定所述应用程序待执行的第一任务包括ui更新任务之后,所述操作系统可将所述ui更新任务分配至所述ui更新任务对应的第一任务队列。
156.当然,所述操作系统还可以生成其他类型的第一任务队列,相应的,所述操作系统还可将所述至少一个第一任务分配至其他形式的第一任务队列。并且,所述操作系统还可同时采用两种以上的划分参数划分第一任务队列的类型,例如,所述操作系统同时根据各个任务之间是否存在时间依赖和任务的内容这两种划分参数,共同划分第一任务队列,这种情况下,所述操作系统可同时生成串行任务队列、并行任务队列和任务内容对应的队列,并且,所述操作系统确定至少一个第一任务之后,优先将该第一任务分配至任务内容对应的队列,再将剩余的第一任务分配至串行任务队列和并行任务队列。
157.步骤s13、所述操作系统根据自身当前的负载水平和所述第一任务队列的类型,为所述第一任务队列分配线程。
158.其中,所述第一任务队列的类型通常包括串行任务队列和并行任务队列,和/或,所述第一任务队列的类型根据所述第一任务队列中包括的任务内容确定,例如,当所述第一任务队列中包括用于ui更新任务,所述第一任务队列的类型为ui更新任务队列。
159.所述操作系统根据自身当前的负载水平为第一任务队列分配线程,即由所述操作系统对应用程序所需的线程进行管控。另外,所述操作系统在分配线程时,会考虑到自身负载水平,因此,所述操作系统通常在可保障自身顺利运行的情况下,为所述第一任务队列分配适当的线程,从而避免出现线程数量的爆发,保障操作系统的顺畅运行。
160.在本技术实施例中,所述操作系统的负载水平可通过以下至少一种参数确定:运行所述操作系统的处理器的空闲比、当前已经创建的线程的数量、所述处理器的内存的占用情况和安装所述操作系统的电子设备的存储器的读写情况。
161.其中,所述运行所述操作系统的处理器的空闲比表明所述处理器处于空闲状态时,所述操作系统通常可为第一任务队列分配较多线程,当所述运行所述操作系统的处理器的空闲比表明所述处理器处于繁忙状态时,所述操作系统通常可为第一任务队列分配较少线程或暂时不分配线程。具体的,还可将所述处理器的空闲比分为多个等级,并配置不同等级与所述操作系统可分配的线程之间的对应关系,所述操作系统可根据所述对应关系为
所述第一任务队列分配相应的线程。
162.另外,如果所述操作系统当前已经创建的线程的数量较多,通常表明操作系统当前负载较高。这种情况下,为了避免线程数量的爆发,所述操作系统可为所述第一任务队列分配的线程通常较少。
163.操作系统在运行过程中,往往会占用处理器的内存,所述内存占用率越高,通常表明所述操作系统当前负载越高。这种情况下,当所述内存占用率较高时,为了保障操作系统的顺畅运行,所述操作系统可为所述第一任务队列分配的线程通常较少。
164.另外,操作系统在运行过程中,往往需要向电子设备的存储器中写入数据以及从所述存储器中读取数据。所述存储器的读写越频繁,则表明操作系统当前负载越高。这种情况下,为了保障操作系统的顺畅运行,当所述存储器的读写较频繁时,所述操作系统可为所述第一任务队列分配的线程通常较少。
165.当然,还可通过其他参数确定所述操作系统的负载水平,本技术实施例对此不作限定。
166.在所述操作系统为所述第一任务队列分配线程之后,所述线程可执行所述第一任务队列中的任务,以满足应用程序执行任务的需求,从而实现应用程序所需实现的功能。
167.在本技术实施例公开的线程管理方法中,应用程序可通过api向操作系统提交第一信息,所述第一信息用于指示应用程序待执行的至少一个第一任务。通过所述第一信息,所述操作系统确定应用程序待执行的至少一个第一任务,将所述至少一个第一任务分配至相应的第一任务队列,并根据自身当前的负载水平和第一任务队列的类型,为所述第一任务队列分配线程。
168.也就是说,通过本技术实施例公开的方案,能够由操作系统对应用程序所需的线程进行分配,并且,操作系统在分配线程的过程中,会考虑自身的负载水平,从而避免出现应用程序对线程的滥用,减少线程数量爆发的现象,使操作系统能够高效运行。
169.为了明确本技术实施例公开的方案,公开图3,图3为在本技术实施例公开的方案中,应用程序与操作系统之间进行数据交互的示意图。
170.在本技术实施例中,操作系统需要确定应用程序的第一信息,以便根据所述第一信息对应用程序所需的线程实现管控。这种情况下,在所述应用程序中,设置有至少一个第一api,每一个第一api可用于向所述操作系统提交该第一api对应的任务的第一信息,也就是说,当应用程序需要执行任务a时,应用程序可通过任务a对应的第一api,向操作系统提交所述任务a的第一信息,以便所述操作系统将所述任务a分配至相应的第一任务队列。
171.参见图3,在所述操作系统中通常设置第三api,通过所述第三api,所述操作系统可获取所述应用程序提交的第一信息,并根据所述第一信息,确定所述应用程序待执行的至少一个第一任务,并将所述至少一个第一任务分配至相应的第一任务队列。
172.在现有技术中,当应用程序需要执行任务时,应用程序往往创建自身所需的线程,这种情况下,应用程序为各个任务设置有相应的第二api。当应用程序需要执行某一任务时,应用程序会调用该任务对应的第二api。所述操作系统在确定所述应用程序调用所述第二api之后,支持所述应用程序生成相应的线程,从而使所述应用程序为自身需执行的任务生成相应的线程。
173.与现有技术相比,在本技术实施例公开的方案中,可将应用程序中某一任务对应
的第二api更新为该任务对应的第一api,从而可由操作系统对该任务所需的线程进行管控,即由所述操作系统为该任务分配线程。
174.进一步的,应用程序往往可执行多项任务,并且,有些场景下,应用程序希望能够由自身创建其中部分任务的线程。例如出于保密性的考虑,应用程序不希望向操作系统提交其中部分任务的第一信息,则可由应用程序自身创建这部分任务的线程。这种情况下,应用程序可保留这部分任务对应的第二api,不将这部分任务对应的第二api更新为第一api。
175.例如,某一应用程序可执行任务a、任务b、任务c、任务d和任务e,其中,所述应用程序希望由自身创建任务d和任务e的线程,这种情况下,参见图3,应用程序可保留任务d和任务e分别对应的第二api,并将任务a、任务b和任务c分别对应的第二api更新为第一api。当所述应用程序需要执行任务d时,所述应用程序可调用任务d对应的第二api,并在操作系统的支持下,创建所述任务d对应的线程。当所述应用程序需要执行任务a时,可通过所述任务a对应的第一api,向所述操作系统提交任务a的第一信息,所述操作系统在获取所述任务a的第一信息之后,可根据自身的负载水平,为所述任务a分配相应的线程。
176.通过这一方案,能够在保障应用程序的保密性的前提下,由操作系统管控应用程序所需的部分线程,减少应用程序生成的线程的数量,降低线程数量爆发的可能性。
177.在本技术实施例中,公开了操作系统根据自身当前的负载水平和所述第一任务队列的类型,为所述第一任务队列分配线程的操作。该操作可通过多种方式实现。
178.在其中一种可行的方式中,在将第一任务分配至相应的第一任务队列之后,所述操作系统根据自身当前的负载水平,确定是否可为所述第一任务生成相应的线程。当所述操作系统确定自身当前的负载水平支持为所述第一任务创建线程时,所述操作系统再为所述第一任务创建相应的线程,并将该线程分配至第一任务队列。
179.通过这一方式,操作系统可每次在应用程序需要,并且自身的负载水平支持的情况下,为所述应用程序创建线程,从而避免线程数量的爆发。
180.在另一种可行的方式中,参见图4,所述操作系统根据自身当前的负载水平和所述第一任务队列的类型,为所述第一任务队列分配线程,包括以下步骤:
181.步骤s131、所述操作系统确定所述第一任务队列的优先级。
182.在本技术实施例中,所述操作系统可根据第一任务队列的优先级,确定分配线程的顺序。这种情况下,所述操作系统通常优先为优先级高的第一任务队列分配线程。
183.另外,所述操作系统可通过多种方式确定所述第一任务队列的优先级,例如,可根据所述应用程序的相关信息,或者所述第一任务队列中包括的任务的类型等。
184.步骤s132、所述操作系统根据所述第一任务队列的优先级,以及第一线程池中空闲的线程对应的任务类型,确定可分配线程的第一目标任务队列,所述第一线程池包括所述操作系统根据自身当前的负载水平创建的空闲的线程。
185.在本技术实施例中,操作系统可根据自身当前的负载水平,预先创建至少一个空闲的线程,所述至少一个空闲的线程位于第一线程池中。其中,所述空闲的线程指的是未执行任务的线程。
186.另外,不同线程可用于执行不同类型的任务。这种情况下,所述操作系统可根据所述第一任务队列的优先级,以及第一线程池中的空闲的线程对应的任务类型,确定可分配线程的第一目标任务队列。
187.示例性的,当所述第一线程池中空闲的线程包括第一线程、第二线程和第三线程,并且第一线程可用于执行第一任务队列a和第一任务队列b中的任务,第二线程和第三线程用于执行第一任务队列c中的任务,而第一任务队列a的优先级高于第一任务队列b的优先级,则可确定第一任务队列a为第一目标任务队列。
188.步骤s133、所述操作系统根据所述第一目标任务队列的类型,为所述第一目标任务队列分配所述第一线程池中的空闲的线程。
189.其中,所述第一目标任务队列的类型通常包括串行任务队列和/或并行任务队列,或者,所述第一目标任务队列的类型通过所述第一目标任务队列中包括的任务内容确定,例如,所述第一目标任务队列中包括的任务内容为ui更新任务,则所述第一目标任务队列的类型为ui更新任务类型。当然,所述第一目标任务队列还可以包括其他类型的任务队列,本技术实施例对此不做限定。
190.为了明确本技术实施例为第一任务队列分配线程的方法,本技术公开一个示例。参见图5所示的场景示意图,在该示例中,电子设备内安装有应用程序a和应用程序b,电子设备的操作系统对所述应用程序a和应用程序b所需的线程进行管控。
191.其中,所述应用程序a待执行的第一任务包括任务1、任务2、任务3
……
任务10,并且,所述应用程序a会向操作系统提交各个第一任务的第一信息。所述应用程序b待执行的第一任务包括ui更新任务,并且,所述应用程序b会向操作系统提交ui更新任务的第一信息。
192.在接收到所述应用程序a和应用程序b提交的第一信息之后,所述操作系统可根据第一信息,将所述应用程序a和应用程序b的第一任务分配至相应的第一任务队列。在本示例中,操作系统将应用程序a的第一任务分配至串行任务队列和并行任务队列中,其中,所述串行任务队列包括应用程序a的任务1、任务2、任务3
……
任务6,所述并行任务队列包括应用程序b的任务7、任务8、任务9和任务10。另外,所述操作系统将应用程序b的第一任务分配至ui更新任务队列。
193.所述操作系统创建有第一线程池,所述第一线程池中包括所述操作系统根据自身的负载水平创建的空闲的线程。当所述操作系统根据所述第一任务队列的优先级,以及第一线程池中空闲的线程对应的任务类型,确定所述应用程序a对应的串行任务队列和并行任务队列,以及所述应用程序b对应的ui更新任务队列为第一目标任务队列。这种情况下,所述操作系统可为所述应用程序a对应的串行任务队列和并行任务队列,以及所述应用程序b对应的ui更新任务队列分配线程,从而能够使应用程序a和应用程序b根据操作系统分配的线程,执行相应的任务。
194.在步骤s131至步骤s133所公开的方案中,操作系统预先根据自身的负载水平,生成包括空闲的线程的第一线程池。当需要为第一目标任务队列分配线程时,所述操作系统将第一线程池中预先创建的空闲的线程分配给所述第一目标任务队列,从而无需再临时为所述第一目标任务队列创建线程。因此,这一方案能够提高所述操作系统为应用程序分配线程的速度,相应的,提高应用程序通过线程执行任务的速度,为用户带来更好的体验。
195.当所述第一目标任务队列的类型通常包括串行任务队列和/或并行任务队列时,在本技术实施例中,通常采用以下方式为所述第一目标任务队列分配所述第一线程池中的空闲的线程:
196.当所述第一目标任务队列包括串行任务队列时,所述操作系统为所述串行任务队列分配所述第一线程池中的一个空闲的线程;
197.当所述第一目标任务队列包括并行任务队列时,所述操作系统根据所述并行任务队列中的任务数量,为所述并行任务队列分配所述第一线程池中的n个空闲的线程,n的最大值为所述并行任务队列中包括的任务的数量。
198.所述串行任务队列中包括的任务之间具有较强的时间依赖,通常需要按照时间顺序依次执行,即完成一个任务之后,才能执行下一个任务。如果为该串行任务队列分配较多线程,当其中一个线程工作时,其他线程处于空闲状态,从而导致线程浪费。因此,在本技术实施例中,为串行任务队列分配第一线程池中的一个空闲的线程,以便这一个空闲的线程依次执行串行任务队列中的各个任务,从而能够减少线程的浪费。
199.另外,所述并行任务队列中包括的任务之间没有较强的时间依赖关系,各个任务即可同时执行,也可在其中一个任务执行完成之后,再执行另一个任务。这种情况下,所述操作系统可根据所述并行任务队列中包括的任务数量,为所述并行任务队列分配线程,并且,所述操作系统为所述并行任务队列最多分配n个空闲的线程,n为所述并行任务队列中包括的任务的数量,以避免线程的浪费。
200.示例性的,当所述第一线程池中可执行所述并行任务队列中的任务的空闲的线程较多,并且所述并行任务队列中的任务数量较多时,所述操作系统可为所述并行任务队列分配较多的线程,以提高任务执行效率;当所述第一线程池中可执行所述并行任务队列中的任务的空闲的线程较少,并且所述并行任务队列中的任务数量较少时,所述操作系统可为所述并行任务队列分配较少的线程,以避免线程数量的爆发。
201.在本技术实施例公开的线程管理方法中,操作系统对应用程序所需的线程进行管控,为所述应用程序分配相应的线程。进一步的,本技术实施例还可包括以下操作:
202.在所述第一目标任务队列中的至少一个任务完成之后,所述操作系统将为所述第一目标任务队列分配的线程回收至所述第一线程池,或者所述操作系统将所述目标任务队列分配的线程调度至其他的任务队列,或者所述操作系统销毁为所述第一目标任务队列分配的线程。
203.如果所述第一目标任务队列中的任务完成,则之前为所述第一目标任务队列分配的线程进入空闲状态,为了避免该线程的浪费,所述操作系统可将该线程回收至第一线程池。回收至第一线程池之后,该线程还可被分配至其他任务队列,并继续执行其他任务队列中的任务,从而减少线程浪费。
204.或者,在所述第一目标任务队列中的任务完成之后,如果为所述第一目标任务队列分配的线程还可执行其他任务队列中的任务,所述操作系统可将该线程分配至所述其他任务队列,以便所述线程执行所述其他任务队列中的任务,从而避免该线程被浪费,并且还能够提高其他任务队列中的任务的执行效率。
205.另外,如果所述其他任务队列包括串行任务队列,并且所述串行任务队列中已经被分配线程,则所述操作系统不会将该线程分配至所述串行任务队列。
206.或者,在所述第一目标任务队列中的任务完成之后,所述操作系统还可销毁为所述第一目标任务队列分配的线程,以减少线程数量,进一步避免出现线程数量爆发的现象。
207.在现有技术中,应用程序创建的线程在执行任务之后,即使应用程序不再需要该
线程,该线程往往继续存在,从而会导致线程资源的浪费。
208.在本技术实施例的方案中,所述操作系统可对完成任务的线程进行回收、调度和销毁,从而减少线程的浪费,并减少了线程数量爆发的现象。
209.为了明确本技术实施例中,操作系统可对线程进行的管控,本技术公开一个示例。参见图6所示的场景示意图,在该示例中,应用程序的任务被分配至两个第一任务队列,所述两个第一任务队列分别为第一并行任务队列和第二并行任务队列。所述第一并行任务队列包括任务1、任务2、任务3
……
任务6等,所述第二并行任务队列包括任务7、任务8和任务9等,并且,所述操作系统分别为这两个第一任务队列分配相应的线程。
210.随着第二并行任务队列中的任务逐渐被完成,第二并行任务队列中包括的任务越来越少,当所述第二并行任务队列中包括三个待执行的任务,而所述操作系统之前为所述第二并行任务队列分配有四个线程时,为了避免线程的浪费,所述操作系统可回收其中的一个线程,而由剩余的三个线程分别执行所述三个待执行的任务,从而减少了线程的浪费。
211.另外,随着线程的回收,所述第一线程池中空闲的线程增多,而第一并行任务队列中包括较多待执行的任务。当第一线程池中增加的空闲的线程可用于执行所述第一并行任务队列中包括的任务时,所述操作系统可将该线程调度至所述第一并行任务队列,即所述操作系统为所述第一并行任务队列分配的线程增加,从而能够提高第一并行任务队列中的任务的执行效率。
212.在本技术实施例的一种可行的方案中,操作系统预先根据自身的负载水平创建第一线程池,在确定第一目标任务队列之后,所述操作系统可确定所述第一线程池中用于执行所述第一目标任务队列中的任务的线程,并将该线程分配至所述第一目标任务队列。
213.但是,应用程序可执行的任务往往包括多种,有些情况下,应用程序需要执行某一任务,但是所述操作系统创建的第一线程池中,并不包括用于执行该任务的线程。这种情况下,本技术公开另一实施例。在这一实施例中,还包括以下步骤:
214.当所述操作系统确定所述第一任务队列中包括第二目标任务队列,并且所述第一线程池中不包括用于执行所述第二目标任务队列中的任务的线程时,所述操作系统为所述第二目标任务队列创建并分配相应的线程,或者所述操作系统支持所述应用程序为所述第二目标任务队列创建相应的线程。
215.其中,所述第二目标任务队列为优先级高于第一优先级的第一任务队列,和/或,所述第二目标任务队列中包括目标任务。
216.在本技术实施例中,可根据用户需求设置第一优先级,当某一任务队列的优先级高于所述第一优先级时,表明该任务队列中的任务较为重要。另外,所述操作系统还可根据对各项任务的重视情况,设置至少一个目标任务,所述目标任务通常为较为关注的任务。而所述第二目标任务队列的优先级高于所述第一优先级,或者,所述第二目标任务队列中包括所述目标任务,相应的,所述第二目标任务队列为较重要的任务队列。
217.这种情况下,当所述第一线程池中不包括用于执行所述第二目标任务队列中的任务的线程时,为了保障所述第二目标任务队列中的任务的顺利执行,所述操作系统可为所述第二目标任务队列创建并分配相应的线程,或者,支持所述应用程序为所述第二目标任务队列创建相应的线程,以便所述第二目标任务队列中的任务能够顺利执行。
218.通过上述步骤,操作系统能够在第一线程池中不包括某一较为重要的任务队列的
线程时,为该任务队列创建并分配相应线程,以保障该任务队列中的任务顺利执行。
219.在上述实施例中,分别公开了根据第一任务队列的优先级,确定第一目标任务队列和第二目标任务队列的方案,在本技术实施例中,可通过多种方式确定所述第一任务队列的优先级。
220.在一种可行的实现方式中,所述操作系统确定所述第一任务队列的优先级,包括:
221.所述操作系统根据所述应用程序提交的所述至少一个第一任务的第二信息,确定所述第一任务队列的优先级。
222.这一实现方式中,所述应用程序向所述操作系统提交第一任务的第二信息,所述第二信息用于指示所述第一任务的优先级,然后,所述操作系统根据所述第一任务的第二信息,确定所述第一任务的优先级,再根据所述第一任务的优先级,确定包括所述第一任务的第一任务队列的优先级。也就是说,这一实现方式中,操作系统根据应用程序提交的信息确定第一任务队列的优先级。
223.示例性的,所述操作系统可确定所述第一任务队列的优先级与所述第一任务的优先级相同。或者,当所述第一任务队列中包括多个第一任务时,所述操作系统可确定所述多个第一任务的优先级的均值为所述第一任务队列的优先级。
224.另外,在这一实现方式中,所述应用程序可通过第一任务对应的第一api,向所述操作系统提交所述第一任务的第二信息。并且,所述第一任务的第一信息和第二信息可加载在同一条信息中,通过提交这一条信息,即可使所述操作系统同时获取所述第一任务的第一信息和第二信息,或者,所述第一任务的第一信息和第二信息也可分别为两条独立的信息,本技术实施例对此不做限定。
225.或者,在另一种可行的实现方式中,所述操作系统根据所述应用程序的第三信息,确定所述第一任务队列的优先级。
226.其中,所述第三信息包括以下至少一种:所述应用程序的运行平台、所述应用程序当前是否可见、所述应用程序的功能当前是否可感知和所述应用程序的应用频率
227.所述应用程序的运行平台通常包括前台和后台,而前台运行的应用程序通常为用户较为关注的应用程序,相应的,在前台运行的应用程序的任务队列的优先级较高。因此,当所述第三信息包括所述应用程序的运行平台时,所述操作系统确定第一应用程序的第一任务队列的优先级高于第二应用程序的第一任务队列的优先级,所述第一应用程序的运行平台为前台,所述第二应用程序的运行平台为后台。
228.所述应用程序当前是否可见,指的是所述应用程序的界面和/或信息等是否可见。其中,当应用程序在前台运行,用户能够观看到该应用程序的界面,则所述应用程序当前可见。另外,某些应用程序即使在后台运行,当接收到新的消息时,也会在通知栏显示该消息的缩略内容,这种情况下,通常也认为所述应用程序当前可见。例如,当所述应用程序为通讯程序,并且该通讯程序在后台运行时,为了避免用户错过其他用户发送的通讯消息,根据用户的设置,可在电子设备的通知栏显示该通讯消息的缩略内容,这种情况下,该通讯程序为当前可见的应用程序。
229.如果某一应用程序当前可见,则表明用户较为关注该应用程序。相应的,当所述第三信息包括所述应用程序当前是否可见时,所述操作系统确定第三应用程序的第一任务队列的优先级高于第四应用程序的第一任务队列的优先级,所述第三应用程序在当前可见,
所述第二应用程序在当前不可见。
230.另外,所述第三信息可包括所述应用程序的功能当前是否可感知。所述应用程序往往包括多种功能,其中有些功能能够被用户感知到。示例性的,当所述应用程序为音频播放类的应用程序时,该应用程序在播放音频时,用户能够听到该音频,则所述应用程序的功能当前可感知;或者,当所述应用程序为导航类的应用程序时,用户能够听到该应用程序发出的导航指示,则该应用程序的功能当前可感知。
231.如果某一应用程序的功能当前可感知,则表明用户较为关注该应用程序,相应的,当所述第三信息包括所述应用程序的功能当前是否可感知时,所述操作系统确定第五应用程序的第一任务队列的优先级高于第六应用程序的第一任务队列的优先级,所述第五应用程序的功能当前可感知,所述第六应用程序的功能当前不可感知。
232.另外,操作系统还可根据应用程序的应用频率确定该应用程序的任务队列的优先级。这种情况下,所述操作系统还可统计各个应用程序的应用频率,相应的,当所述第三信息包括所述应用程序的应用频率时,所述操作系统确定第七应用程序的第一任务队列的优先级高于第八应用程序的第一任务队列的优先级,所述第七应用程序的应用频率高于所述第八应用程序的应用频率,即应用频率越高的应用程序的任务队列的优先级越高。
233.上述方案中,描述了当所述第三信息分别包括所述应用程序的运行平台、所述应用程序当前是否可见、所述应用程序的功能当前是否可感知和所述应用程序的应用频率时,确定所述第一任务队列的优先级的方法。另外,还可结合上述两种或两种以上的第三信息,共同确定所述应用程序的第一任务队列的优先级。
234.示例性的,当所述第三信息包括所述应用程序的运行平台和所述应用程序的应用频率时,所述操作系统通常确定运行平台为前台,并且应用频率较高的应用程序的第一任务队列的优先级最高,而运行平台为后台,并且应用频率较低的应用程序的第一任务队列的优先级最低。
235.或者,当结合两种或两种以上的第三信息,共同确定所述应用程序的第一任务队列的优先级时,还可设置不同的第三信息分别对应的置信度,这种情况下,所述操作系统根据该置信度,确定所述第一任务队列的优先级。
236.在另一种可行的实现方式中,所述操作系统确定所述第一任务队列的优先级,包括:所述操作系统根据所述第一任务队列中包括的任务的类型,确定所述第一任务队列的优先级。
237.这一实现方式中,所述操作系统设置有各个任务的类型与该任务的优先级之间的对应关系,根据该对应关系以及所述第一任务的类型,所述操作系统可确定所述第一任务的优先级,进而再根据所述第一任务的优先级,确定包括所述第一任务的第一任务队列的优先级。也就是说,这一实现方式中,操作系统根据第一任务的优先级,确定包括所述第一任务的第一任务队列的优先级。
238.示例性的,在这一实现方式中,可设定某一应用程序的ui更新任务对应的优先级为最高优先级。当操作系统确定所述应用程序待执行的第一任务包括ui更新任务时,根据该对应关系,即可确定所述ui更新任务的优先级,进而根据所述ui更新任务的优先级,确定包括所述ui更新任务的任务队列的优先级。
239.或者,在另一种可行的实现方式中,所述操作系统确定所述第一任务队列的优先
级,包括:所述操作系统根据所述第一任务队列的等待时长,确定所述第一任务队列的优先级。
240.在本技术实施例中,为了避免线程数量的爆发,所述操作系统可优先为部分的第一任务队列分配线程,当所述操作系统的负载水平不足以支撑为全部的第一任务队列分配线程时,则部分第一任务队列往往需要等待一段时间,才能获取所述操作系统分配的线程。为了避免所述第一任务队列等待时间过长,影响应用程序的正常运转,所述操作系统可根据所述第一任务队列的等待时长,确定所述第一任务队列的优先级。
241.在这一实现方式中,所述操作系统可在所述第一任务队列的等待时长每超过第一时间段时,将所述第一任务队列的优先级调高一个等级,直到所述操作系统能够为其分配线程,从而避免所述第一任务队列的等待时长过长。
242.上述描述中,分别公开了操作系统根据第一任务的第二信息、应用程序的第三信息、任务的类型和第一任务队列的等待时长,确定所述第一任务队列的优先级的方案。另外,还可同时结合上述两种或两种以上的方式,确定所述第一任务队列的优先级。
243.示例性的,所述操作系统可同时根据所述应用程序的第三信息,以及所述第一任务队列中包括的任务的类型,确定所述第一任务队列的优先级。其中,所述应用程序的第三信息可为所述应用程序的运行平台。这种情况下,当某一应用程序的运行平台为前台,并且该应用程序的第一任务队列中的任务的类型对应的优先级为较高优先级时,则可确定该应用程序的第一任务队列的优先级为高优先级。
244.在本技术实施例中,所述操作系统根据自身当前的负载水平生成第一线程池,所述第一线程池中包括所述操作系统生成的空闲的线程,以便所述操作系统能够为应用程序所需执行的任务分配相应的线程。
245.其中,不同线程可执行不同的任务,而不同应用程序需要执行的任务不同,而所述操作系统可根据自身当前的负载水平生成第一线程池。这种情况下,本技术实施例还包括以下步骤:
246.第一步,所述操作系统确定在第一时间段内,应用频率高于第一阈值的至少一个第一应用程序;
247.第二步,所述操作系统确定在所述第一时间段内,所述第一应用程序应用的频率高于第二阈值的目标线程;
248.第三步,所述操作系统根据自身当前的负载水平,确定可支持的所述目标线程的数量,并生成相应数量的所述目标线程,所述目标线程位于所述第一线程池。
249.通过上述步骤,所述操作系统可生成第一线程池中的线程。并且,所述操作系统所生成的目标线程,为第一应用程序应用频率较高的线程,而所述第一应用程序为电子设备内应用频率较高的应用程序。这种情况下,所述操作系统所生成的线程为应用频率较高的线程,从而能够使所述第一线程池中的线程能够满足大多数场景下的需求。
250.或者,在另一种所述操作系统根据自身当前的负载水平生成第一线程池的方法中,所述操作系统中可设置有各个应用程序与应用程序所需的线程之间的对应关系,在电子设备运行的过程中,所述操作系统确定电子设备内安装的应用程序,并根据所述应用程序与应用程序所需的线程之间的对应关系,生成相应的线程,该线程位于所述第一线程池中。
251.当然,所述操作系统还可以通过其他方式生成所述第一线程池中的线程,本技术实施例对此不作限定。
252.另外,所述操作系统在创建第一线程池之后,还可在自身负载水平发生变化之后,对第一线程池内包括的线程进行调整。例如,在所述操作系统的负载水平升高之后,所述操作系统可销毁其中部分线程,以保障所述操作系统的顺畅运行,在所述操作系统的负载水平降低之后,所述操作系统可生成新的空闲的线程,并将所述空闲的放置在第一线程池中,以便所述第一线程池能够满足应用程序更多对线程的需求。。
253.上述各个实施例中,分别公开了操作系统对应用程序所需的线程的管理方法,另外,在操作系统的运行过程中,操作系统自身往往还需要执行一些任务,相应的,所述操作系统需要用于执行自身的任务的线程。为了对自身所需的线程进行管理,本技术实施例还公开以下步骤:
254.所述操作系统将自身待执行的至少一个第二任务,分配至相应的第二任务队列;
255.所述操作系统确定所述第二任务队列的优先级;
256.所述操作系统根据所述第二任务队列的优先级,为所述第二任务队列分配第二线程池中包括的空闲的线程,所述第二线程池包括的空闲的线程由所述操作系统根据自身当前的负载水平创建。
257.在本技术实施例中,所述操作系统自身需要执行第二任务时,将第二任务分配至相应的第二任务队列,再根据所述第二任务队列的优先级,为所述第二任务队列分配第二线程池中的空闲的线程。
258.其中,不同的第二任务队列可对应不同的任务类型,例如,所述操作系统通常执行显示渲染任务(即render task)和ui更新任务,则所述操作系统可分别创建显示渲染任务和ui更新任务对应的第二任务队列,并将所述显示渲染任务和ui更新任务分别分配至相应的第二任务队列。
259.另外,所述操作系统通常根据第二任务队列中包括的任务的类型,确定所述第二任务队列的优先级。示例性的,所述操作系统通常较为关注显示渲染任务,因此,通常确定包括显示渲染任务的第二任务队列的优先级为较高优先级。
260.在本技术实施例中,所述操作系统根据自身当前的负载水平,创建有第二线程池,所述第二线程池中包括空闲的线程。这种情况下,所述操作系统可根据所述第二任务队列的优先级,优先将所述第二线程池中空闲的线程分配至优先级较高的第二任务队列。
261.另外,在本技术实施例中,所述第二线程池与所述第一线程池可为同一线程池,即该线程池中同时包括所述操作系统和所述应用程序所需的线程。或者,所述第二线程池与所述第一线程池可为不同的线程池,本技术实施例对此不作限定。
262.其中,当所述第一线程池与第二线程池为同一个线程池时,为了明确本技术实施例为第二任务队列分配线程的方法,本技术公开一个示例。参见图7所示的示意图,在该示例中,电子设备内安装有应用程序a和应用程序b,电子设备的操作系统对所述应用程序a和应用程序b所需的线程进行管控。
263.其中,所述应用程序a待执行的第一任务包括任务1、任务2、任务3
……
任务10,所述应用程序b待执行的第一任务包括ui更新任务。在接收到所述应用程序a和应用程序b提交的第一信息之后,所述操作系统可根据第一信息,将所述应用程序a和应用程序b的第一
任务分配至相应的第一任务队列。在本示例中,操作系统将应用程序a的第一任务分配至串行任务队列和并行任务队列中,另外,所述操作系统将应用程序b的第一任务分配至ui更新任务队列。
264.所述操作系统创建有第一线程池,所述第一线程池中包括所述操作系统根据自身的负载水平创建的空闲的线程,并且,所示操作系统可为所述应用程序a对应的串行任务队列和并行任务队列,以及所述应用程序b对应的ui更新任务队列分配所述第一线程池中的线程,从而能够使应用程序a和应用程序b根据操作系统分配的线程,执行相应的任务。
265.进一步的,由于在该示例中,第一线程池与第二线程池为同一个线程池,因此在所述第一线程池中,还包括为操作系统所需执行的任务分配的线程。这种情况下,所述操作系统在将第二任务分配至第二任务队列之后,所述操作系统还可将所述第一线程池中可执行第二任务的线程分配至所述第二任务队列,以便所述线程执行所述第二任务队列中的任务。
266.相应的,本技术实施例还公开一种线程管理方法。该线程管理方法由应用程序执行,参见图8所示的工作流程示意图,该线程管理方法包括以下步骤:
267.步骤s21、当应用程序需要执行第一任务时,通过所述第一任务对应的第一应用程序编程接口api,向操作系统提交第一信息,所述第一信息用于指示所述第一任务;
268.步骤s22、所述应用程序通过所述操作系统为所述第一任务分配的线程,执行所述第一任务。
269.在本技术实施例中,所述应用程序通过自身的第一api,向操作系统提交第一信息。所述操作系统根据所述第一信息,确定待执行的第一任务,将所述至少一个第一任务分配至相应的第一任务队列,再根据自身当前的负载水平和所述第一任务队列的类型,为所述第一任务队列分配线程。所述应用程序再通过所述操作系统为所述第一任务分配的线程,执行所述第一任务。
270.这种情况下,无需用户程序创建第一任务的线程,而是由操作系统对应用程序所需的线程进行分配,即由所述操作系统为用户程序分配所述第一任务的线程,从而避免出现应用程序对线程的滥用,减少线程数量爆发的现象,使操作系统能够高效运行。
271.进一步的,在本技术实施例中,还包括以下步骤:
272.当所述应用程序在提交所述第一信息之后的第一时间段内,未获取所述操作系统为所述第一任务分配的线程时,所述应用程序通过所述第一任务对应的第二api,向所述操作系统传输第一请求;
273.所述应用程序在获取所述第一请求对应的第一反馈之后,生成所述第一任务对应的线程,并通过所述线程执行所述第一任务。
274.应用程序的同一个任务可同时具备第一api和第二api,并且,所述应用程序需要执行该任务时,优先通过所述第一api向所述操作系统提交所述任务的第一信息,以便所述操作系统为所述任务分配线程。但是,在经过第一时间段之后,如果所述应用程序一直未获取所述操作系统为所述任务分配的线程时,可调用所述第二api。所述操作系统在确定所述应用程序调用所述第二api之后,通常支持所述应用程序生成所述任务对应的线程,从而避免应用程序等待过长的时间。
275.进一步的,在本技术实施例中,还包括:
276.所述应用程序通过所述第一任务对应的第一api,向所述操作系统提交所述第一任务的第二信息,所述第二信息用于指示所述第一任务的优先级。
277.通过上述步骤,所述操作系统可获取所述应用程序提交的所述第一任务的第二信息,并通过所述第二信息,确定所述第一任务所在的任务队列的优先级。
278.下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
279.在本技术实施例中,公开一种线程管理装置,参见图9所示的示意图,所述线程管理装置包括:
280.处理器110和应用程序编程接口api 120。
281.其中,所述api 120用于获取应用应用程序的至少一条第一信息,所述第一信息用于指示所述应用程序待执行的第一任务;
282.所述处理器110用于将所述至少一个第一任务分配至相应的第一任务队列,并根据所述处理器的操作系统当前的负载水平和所述第一任务队列的类型,为所述第一任务队列分配线程。
283.通过本技术实施例公开的方案,能够由操作系统对应用程序所需的线程进行分配,并且,操作系统在分配线程的过程中,会考虑自身的负载水平,从而避免出现应用程序对线程滥用的情况,减少线程数量爆发的现象,使操作系统能够高效运行。
284.进一步的,所述处理器具体用于,确定所述第一任务队列的优先级;
285.根据所述第一任务队列的优先级,以及第一线程池中空闲的线程对应的任务类型,确定可分配线程的第一目标任务队列,所述第一线程池包括根据所述操作系统当前的负载水平创建的空闲的线程;
286.根据所述第一目标任务队列的类型,为所述第一目标任务队列分配所述第一线程池中的空闲的线程。
287.在本技术实施例中,操作系统可创建第一线程池,所述第一线程池中包括空闲的线程。这种情况下,当需要为第一目标任务队列分配线程时,所述操作系统将第一线程池中预先创建的空闲的线程分配给所述第一目标任务队列,从而无需再临时为所述第一目标任务队列创建线程。因此,这一方案能够提高所述操作系统为应用程序分配线程的速度,相应的,提高应用程序通过线程执行任务的速度,为用户带来更好的体验。
288.另外,根据第一目标任务队列的类型,所述处理器可通过不同的方式,为所述第一目标任务队列分配相应的线程。
289.一种可行的方式中,在本技术实施例所公开的装置中,所述处理器具体用于,当所述第一目标任务队列包括串行任务队列时,为所述串行任务队列分配所述第一线程池中的一个空闲的线程;
290.当所述第一目标任务队列包括并行任务队列时,根据所述并行任务队列中的任务数量,为所述并行任务队列分配所述第一线程池中的n个空闲的线程,n的最大值为所述并行任务队列中包括的任务的数量。
291.所述串行任务队列中包括的任务之间具有较强的时间依赖,通常需要按照时间顺序依次执行,即完成一个任务之后,才能执行下一个任务。如果为该串行任务队列分配较多线程,当其中一个线程工作时,其他线程处于空闲状态,从而导致线程浪费。因此,在本技术
实施例中,为串行任务队列分配第一线程池中的一个空闲的线程,以便这一个空闲的线程依次执行串行任务队列中的各个任务,从而能够减少线程的浪费。
292.另外,所述并行任务队列中包括的任务之间没有较强的时间依赖关系,各个任务即可同时执行,也可在其中一个任务执行完成之后,再执行另一个任务。这种情况下,所述操作系统可根据所述并行任务队列中包括的任务数量,为所述并行任务队列分配线程,并且,所述操作系统为所述并行任务队列最多分配n个空闲的线程,n为所述并行任务队列中包括的任务的数量,以避免线程的浪费。
293.进一步的,在本技术实施例所公开的装置中,所述处理器还用于,在所述第一目标任务队列中的至少一个任务完成之后,将为所述第一目标任务队列分配的线程回收至所述第一线程池,或者将为所述目标任务队列分配的线程调度至其他任务队列,或者销毁为所述第一目标任务队列分配的线程。
294.通过本技术实施例公开的线程管理装置,能够对完成任务的线程进行回收、调度和销毁,从而减少线程的浪费,并减少了线程数量爆发的现象。
295.进一步的,在本技术实施例所公开的装置中,所述处理器还用于,当所述第一任务队列中包括第二目标任务队列,并且所述第一线程池中不包括用于执行所述第二目标任务队列中的任务的线程时,为所述第二目标任务队列创建并分配相应的线程,或者支持所述应用程序为所述第二目标任务队列创建相应的线程;
296.其中,所述第二目标任务队列为优先级高于第一优先级的第一任务队列,和/或,所述第二目标任务队列中包括目标任务。
297.在本技术实施例公开的方案中,当所述第一线程池中不包括用于执行所述第二目标任务队列中的任务的线程时,为了保障所述第二目标任务队列中的任务的顺利执行,所述处理可为所述第二目标任务队列创建并分配相应的线程,或者,支持所述应用程序为所述第二目标任务队列创建相应的线程,以便所述第二目标任务队列中的任务能够顺利执行。
298.在本技术实施例中,可通过多种方式确定第一任务队列的优先级。其中,所述处理器用于根据所述应用程序提交的所述至少一个第一任务的第二信息,确定所述第一任务队列的优先级;
299.和/或,所述处理器用于根据所述应用程序的第三信息,确定所述第一任务队列的优先级,所述第三信息包括以下至少一种:所述应用程序的运行平台、所述应用程序当前是否可见、所述应用程序的功能当前是否可感知和所述应用程序的应用频率;
300.和/或,所述处理器用于根据所述第一任务队列中包括的任务的类型,确定所述第一任务队列的优先级;
301.和/或,所述处理器用于根据所述第一任务队列的等待时长,确定所述第一任务队列的优先级。
302.当所述第三信息包括所述应用程序的运行平台时,所述处理器用于确定第一应用程序的第一任务队列的优先级高于第二应用程序的第一任务队列的优先级,所述第一应用程序的运行平台为前台,所述第二应用程序的运行平台为后台;
303.当所述第三信息包括所述应用程序当前是否可见时,所述处理器用于确定第三应用程序的第一任务队列的优先级高于第四应用程序的第一任务队列的优先级,所述第三应
用程序在当前可见,所述第二应用程序在当前不可见;
304.当所述第三信息包括所述应用程序的功能当前是否可感知时,所述处理器用于确定第五应用程序的第一任务队列的优先级高于第六应用程序的第一任务队列的优先级,所述第五应用程序的功能当前可感知,所述第六应用程序的功能当前不可感知;
305.当所述第三信息包括所述应用程序的应用频率时,所述处理器用于确定第七应用程序的第一任务队列的优先级高于第八应用程序的第一任务队列的优先级,所述第七应用程序的应用频率高于所述第八应用程序的应用频率。
306.另外,在本技术实施例所公开的装置中,所述处理器具体用于,确定在第一时间段内,应用频率高于第一阈值的至少一个第一应用程序;
307.确定在所述第一时间段内,所述第一应用程序应用的频率高于第二阈值的目标线程;
308.根据所述操作系统当前的负载水平,确定可支持的所述目标线程的数量,并生成相应数量的所述目标线程。
309.在本技术实施例所公开的装置中,所述操作系统的负载水平通过以下至少一种参数确定:运行所述操作系统的处理器的空闲比、当前已经创建的线程的数量、所述处理器的内存的占用情况和安装所述操作系统的电子设备的存储器的读写情况。
310.进一步的,在本技术实施例所公开的装置中,所述处理器还用于,将自身待执行的至少一个第二任务,分配至相应的第二任务队列;
311.确定所述第二任务队列的优先级;
312.根据所述第二任务队列的优先级,为所述第二任务队列分配第二线程池中包括的空闲的线程,所述第二线程池包括的空闲的线程由所述操作系统根据自身当前的负载水平创建。
313.在本技术实施例公开的线程管理方法中,应用程序可通过api向操作系统提交第一信息,所述第一信息用于指示应用程序待执行的至少一个第一任务。通过所述第一信息,所述操作系统确定应用程序待执行的至少一个第一任务,将所述至少一个第一任务分配至相应的第一任务队列,并根据自身当前的负载水平和第一任务队列的类型,为所述第一任务队列分配线程。
314.通过本技术实施例公开的方案,能够由操作系统对应用程序所需的线程进行分配,并且,操作系统在分配线程的过程中,会考虑自身的负载水平,从而避免出现应用程序对线程滥用的情况,减少线程数量爆发的现象,使操作系统能够高效运行。
315.相应的,本技术实施例还公开一种线程管理装置。参见图10所示的示意图,所述线程管理装置包括:
316.处理器210和第一应用程序编程接口api 220。
317.其中,当应用程序需要执行第一任务时,所述第一任务对应的第一api 220用于向操作系统提交第一信息,所述第一信息用于指示所述第一任务;
318.所述处理器210用于通过所述操作系统为所述第一任务分配的线程,执行所述第一任务。
319.通过本技术实施例公开的线程管理装置,能够由操作系统为用户程序分配第一任务所需的线程,无需用户程序创建第一任务的线程,从而避免出现应用程序对线程滥用的
情况,减少线程数量爆发的现象,使操作系统能够高效运行。
320.进一步的,本技术实施例公开的线程管理装置还包括:
321.第二api;
322.当在提交所述第一信息之后的第一时间段内,未获取所述操作系统为所述第一任务分配的线程时,所述第一任务对应的所述第二api用于向所述操作系统传输第一请求;
323.所述处理器还用于,在获取所述第一请求对应的第一反馈之后,生成所述第一任务对应的线程,并通过所述线程执行所述第一任务。
324.进一步的,在本技术实施例公开的线程管理装置中,所述处理器还用于,通过所述第一任务对应的第一api,向所述操作系统提交所述第一任务的第二信息,所述第二信息用于指示所述第一任务的优先级。
325.通过所述第一api传输的第二信息,所述操作系统能够确定所述第一任务的优先级。
326.相应的,与上述的车道线确定方法相对应的,本技术实施例还公开一种终端装置。参见图11所示的结构示意图,所述终端装置包括:
327.至少一个处理器1101和存储器,
328.其中,所述存储器,用于存储程序指令;
329.所述处理器,用于调用并执行所述存储器中存储的程序指令,以使所述终端装置执行图2和图4对应的实施例中的全部或部分步骤。
330.进一步的,该终端装置还可以包括:收发器1102和总线1103,所述存储器包括随机存取存储器1104和只读存储器1105。
331.其中,处理器通过总线分别耦接收发器、随机存取存储器以及只读存储器。其中,当需要运行该终端装置时,通过固化在只读存储器中的基本输入输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导该装置进入正常运行状态。在该装置进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,从而使所述移动终端操控装置执行图2和图4对应的实施例中的全部或部分步骤。
332.本发明实施例的装置可对应于上述图2和图4所对应的实施例中的线程管理装置,并且,该线程管理装置中的处理器等可以实现图2和图4所对应的实施例中的线程管理装置所具有的功能和/或所实施的各种步骤和方法,为了简洁,在此不再赘述。
333.相应的,与上述的车道线确定方法相对应的,本技术实施例还公开一种终端装置,所述终端装置包括:
334.至少一个处理器和存储器,
335.其中,所述存储器,用于存储程序指令;
336.所述处理器,用于调用并执行所述存储器中存储的程序指令,以使所述终端装置执行图8对应的实施例中的全部或部分步骤。
337.进一步的,该终端装置还可以包括:收发器和总线,所述存储器包括随机存取存储器和只读存储器。
338.其中,处理器通过总线分别耦接收发器、随机存取存储器以及只读存储器。其中,当需要运行该终端装置时,通过固化在只读存储器中的基本输入输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导该装置进入正常运行状态。在该装置进入正常运
行状态后,在随机存取存储器中运行应用程序和操作系统,从而使所述移动终端操控装置执行图8对应的实施例中的全部或部分步骤。
339.本发明实施例的装置可对应于上述图8所对应的实施例中的线程管理装置,并且,该线程管理装置中的处理器等可以实现图8所对应的实施例中的线程管理装置所具有的功能和/或所实施的各种步骤和方法,为了简洁,在此不再赘述。
340.具体实现中,本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括指令。其中,设置在任意设备中计算机可读介质其在计算机上运行时,可实施包括图2和图4对应的实施例中的全部或部分步骤。所述计算机可读介质的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:rom)或随机存储记忆体(英文:random access memory,简称:ram)等。
341.具体实现中,本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括指令。其中,设置在任意设备中计算机可读介质其在计算机上运行时,可实施包括图8对应的实施例中的全部或部分步骤。所述计算机可读介质的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:rom)或随机存储记忆体(英文:random access memory,简称:ram)等。
342.另外,本技术另一实施例还公开一种包含指令的计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备可实施包括图2和图4对应的实施例中的全部或部分步骤。
343.相应的,本技术另一实施例还公开一种包含指令的计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备可实施包括图8对应的实施例中的全部或部分步骤。
344.本技术实施例中所描述的各种说明性的逻辑单元和电路可以通过通用处理器,数字信息处理器,专用集成电路(asic),现场可编程门阵列(fpga)或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信息处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信息处理器核,或任何其它类似的配置来实现。
345.本技术实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件单元、或者这两者的结合。软件单元可以存储于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd-rom或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于asic中,asic可以设置于ue中。可选地,处理器和存储媒介也可以设置于ue中的不同的部件中。
346.应理解,在本技术的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
347.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实
现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
348.本说明书的各个实施例之间相同相似的部分互相参见即可,每个实施例重点介绍的都是与其他实施例不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例部分的说明即可。
349.本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
350.本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于本技术公开的道路约束确定装置的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
351.以上所述的本发明实施方式并不构成对本发明保护范围的限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜