System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于终端设备的线程调度方法、终端设备和介质技术_技高网

基于终端设备的线程调度方法、终端设备和介质技术

技术编号:41175520 阅读:4 留言:0更新日期:2024-05-07 22:11
本申请实施例提供基于终端设备的线程调度方法、终端设备和介质。该方法应用于终端设备的处理器,处理器中运行有第一线程和第一进程,处理器中设置有缓存区域,该方法包括:基于第一线程确定需释放缓存区域时,基于第一线程向处理器的内核层发送释放指令,释放指令用于指示释放缓存区域中的任务数据;基于内核层根据释放指令,将第二线程的处理优先级从第一优先级修改为第二优先级;第二优先级的处理优先级高于第一优先级的处理优先级;基于处理器的内核层向第一进程中的第二线程发送释放指令,基于具有第二优先级的第二线程,释放缓存区域中的任务数据。及时调度第二线程去释放缓存区域中的任务数据,及时的处理任务。

【技术实现步骤摘要】

本申请涉及终端,尤其涉及基于终端设备的线程调度方法、终端设备和介质


技术介绍

1、目前,随着终端技术的发展,终端设备已经成为人们生活中的重要工具。终端设备需要很多任务;例如,终端设备中具有多个应用,终端设备在运行应用的过程中,需要显示动效图像。再例如,终端设备需要更新系统的窗口信息。终端设备在处理任务的过程中,会将任务的任务数据缓存在缓存区域,基于缓存区域中的任务数据去处理任务;然后终端设备在处理完任务之后,释放缓存区域中的任务数据。

2、现有技术中,终端设备基于binder线程去释放缓存区域中的任务数据;binder线程需要等待被调度,才可以去释放缓存区域中的任务数据。

3、但是上述方式中,常出现binder线程无法被及时调度的情况,从而终端设备无法及时的基于binder线程去释放缓存区域中的任务数据;导致终端设备无法及时处理新的任务。


技术实现思路

1、本申请实施例提供一种基于终端设备的线程调度方法、终端设备和介质,应用于终端
,可以及时调度binder线程去释放缓存区域中的任务数据,避免终端设备无法及时处理新的任务的问题。

2、第一方面,本申请实施例提出一种基于终端设备的线程调度方法,所述方法应用于终端设备的处理器,所述处理器中运行有第一线程和第一进程,所述处理器中设置有缓存区域,其中,所述第一线程为用于处理任务的线程,所述第一进程中包括第二线程,所述第二线程为binder线程,所述缓存区域用于缓存所述任务的任务数据,所述方法包括:

3、基于所述第一线程确定需释放所述缓存区域时,基于所述第一线程向所述处理器的内核层发送释放指令,所述释放指令用于指示释放所述缓存区域中的任务数据;基于所述内核层根据所述释放指令,将所述第二线程的处理优先级从第一优先级修改为第二优先级;其中,所述第二优先级的处理优先级高于所述第一优先级的处理优先级;基于所述处理器的内核层向所述第一进程中的所述第二线程发送所述释放指令,基于具有所述第二优先级的第二线程,释放所述缓存区域中的任务数据。

4、这样,在需要释放缓存区域中的任务数据的时候,可以先提升第二线程的处理器优先级,从而使得第二线程会被优先调度去释放缓存区域中的任务数据。即,使得第一线程的第二线程在执行执行releasebuffercallback期间被提升优先级,使得第二线程能被及时调度,去释放缓存区域。

5、由于第二线程可以被及时调取,从而第二线程可以及时的释放缓存区域中的任务数据,进一步使得第一进程可以及时的将新的任务数据缓存至缓存区域中,从而第一线程及时的从缓存区域中获取新的任务数据去处理任务;避免终端设备无法基于新的任务数据去任务的问题。从而,使得终端设备可以及时的处理任务。

6、在一种可能的实现方式中,所述第一优先级为表征非实时调度的优先级,所述第二优先级为表征实时调度的优先级。这样,保证第二优先级是rt优先级。

7、在一种可能的实现方式中,基于所述内核层根据所述释放指令,将所述第二线程的处理优先级从第一优先级修改为第二优先级,包括:

8、基于所述内核层根据所述释放指令,若确定所述第一线程和所述第一进程符合预设条件,则将所述第二线程的处理优先级从第一优先级修改为第二优先级。

9、这样,在确定符合一定条件的时候,才会提升第二线程的处理优先级,保证其他线程也可以正常处理任务。

10、在一种可能的实现方式中,所述内核层存储有binder通信编号和接口描述符,所述binder通信编号用于指示通信接口,所述接口描述符用于指示进行通信的发起端和处理端。

11、基于所述内核层根据所述释放指令,若确定所述第一线程和所述第一进程符合预设条件,则将所述第二线程的处理优先级从第一优先级修改为第二优先级,包括:基于所述内核层根据所述释放指令,若确定所述binder通信编号所指示的通信接口,为所述第一线程与所述第二线程之间的通信接口,并且所述接口描述符指示出进行通信的发起端为所述第一线程、进行通信的处理端为第一进程,则将所述第二线程的处理优先级从第一优先级修改为第二优先级。

12、这样,处理器的内核层在确定是第一线程向第一进程发起通信,处理器的内核层才确定可以提升第二线程的处理优先级。

13、在一种可能的实现方式中,所述内核层还存储有异步通信标识,所述异步通信标识用于指示出通信方式。

14、在将所述第二线程的处理优先级从第一优先级修改为第二优先级之前,还包括:基于所述内核层若确定所述异步通信标识指示出所述第一线程与所述第一进程之间为异步binder通信,则将所述第二线程的处理优先级从第一优先级修改为第二优先级。

15、这样,在进一步确定是第一线程与第一进程之间为异步binder通信,处理器的内核层才确定可以提升第二线程的处理优先级。

16、在一种可能的实现方式中,所述方法还包括:基于所述内核层获取第一进程号,其中,所述第一进程号用于指示所述第一进程的进程号。

17、在将所述第二线程的处理优先级从第一优先级修改为第二优先级之前,还包括:

18、基于所述内核层若确定所述第一进程号与预存的第二进程号一致、并且预存的线程名为所述第一线程的线程名,则将所述第二线程的处理优先级从第一优先级修改为第二优先级;其中,所述预存的第二进程号用于指示所述第一进程的进程号。

19、这样,基于binder通信编号,确定binder通信编号所指示的通信接口为第一线程与第二线程之间的通信接口,确定接口描述符指示出进行通信的发起端为第一线程,并且,确定接口描述符指示出进行通信的处理端为第一进程,从而处理器的内核层确定是第一线程向第一进程发起通信。并且第一线程与第一进程之间为异步binder通信,从而排除同步通信。再进一步基于进程号和线程名,更进一步的确定是第一进程与第一线程通信,然后才提升第二线程的处理优先级。在一种可能的实现方式中,基于所述内核层获取第一进程号,包括:

20、基于所述第一进程获取第一开关信息,其中,所述第一开关信息表征开始对所述第二线程进行优先级修改;基于所述第一进程根据所述第一开关信息,获取第一事件;其中,所述第一事件表征开始对所述第二线程进行优先级修改;基于所述第一进程根据所述第一事件,获取所述第一进程号;并基于所述第一进程将所述第一进程号发送给所述内核层。

21、这样,保证内核层可以获取到第一进程的进程号,以完成对第一进程号的判断。

22、在一种可能的实现方式中,所述方法还包括:基于所述内核层若所述第二线程处于空闲状态,则基于所述内核层将所述第二线程的处理优先级从所述第二优先级恢复为所述第一优先级。

23、这样,在每一次第二线程对缓存区域的释放完毕之后,恢复第二线程的优先级,保证其他进程可以正常执行。

24、在一种可能的实现方式中,所述方法还包括:基于所述第一进程获取第二开关信息,其中,所述第二开关本文档来自技高网...

【技术保护点】

1.一种基于终端设备的线程调度方法,其特征在于,所述方法应用于终端设备的处理器,所述处理器中运行有第一线程和第一进程,所述处理器中设置有缓存区域,其中,所述第一线程为用于处理任务的线程,所述第一进程中包括第二线程,所述第二线程为binder线程,所述缓存区域用于缓存所述任务的任务数据,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述第一优先级为表征非实时调度的优先级,所述第二优先级为表征实时调度的优先级。

3.根据权利要求1或2所述的方法,其特征在于,基于所述内核层根据所述释放指令,将所述第二线程的处理优先级从第一优先级修改为第二优先级,包括:

4.根据权利要求3所述的方法,其特征在于,所述内核层存储有binder通信编号和接口描述符,所述binder通信编号用于指示通信接口,所述接口描述符用于指示进行通信的发起端和处理端;基于所述内核层根据所述释放指令,若确定所述第一线程和所述第一进程符合预设条件,则将所述第二线程的处理优先级从第一优先级修改为第二优先级,包括:

5.根据权利要求4所述的方法,其特征在于,所述内核层还存储有异步通信标识,所述异步通信标识用于指示出通信方式;在将所述第二线程的处理优先级从第一优先级修改为第二优先级之前,还包括:

6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:基于所述内核层获取第一进程号,其中,所述第一进程号用于指示所述第一进程的进程号;

7.根据权利要求6所述的方法,基于所述内核层获取第一进程号,包括:

8.根据权利要求1-7中任一项所述的方法,其特征在于,所述方法还包括:

9.根据权利要求1-8中任一项所述的方法,其特征在于,所述方法还包括:

10.根据权利要求1-9中任一项所述的方法,其特征在于,所述第一线程为用于合成应用的动效图像的线程,所述第一进程为桌面进程,所述第一进程为用于绘制动效图像的图像数据的进程;

11.一种终端设备,其特征在于,包括:处理器和存储器;

12.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-10任一项所述的方法。

13.一种计算机程序产品,其特征在于,包括计算机程序,当所述计算机程序被运行时,使得计算机执行如权利要求1-10任一项所述的方法。

...

【技术特征摘要】

1.一种基于终端设备的线程调度方法,其特征在于,所述方法应用于终端设备的处理器,所述处理器中运行有第一线程和第一进程,所述处理器中设置有缓存区域,其中,所述第一线程为用于处理任务的线程,所述第一进程中包括第二线程,所述第二线程为binder线程,所述缓存区域用于缓存所述任务的任务数据,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述第一优先级为表征非实时调度的优先级,所述第二优先级为表征实时调度的优先级。

3.根据权利要求1或2所述的方法,其特征在于,基于所述内核层根据所述释放指令,将所述第二线程的处理优先级从第一优先级修改为第二优先级,包括:

4.根据权利要求3所述的方法,其特征在于,所述内核层存储有binder通信编号和接口描述符,所述binder通信编号用于指示通信接口,所述接口描述符用于指示进行通信的发起端和处理端;基于所述内核层根据所述释放指令,若确定所述第一线程和所述第一进程符合预设条件,则将所述第二线程的处理优先级从第一优先级修改为第二优先级,包括:

5.根据权利要求4所述的方法,其特征在于,所述内核层还存储有异步通信标识,所述异步通信标识用于指示出通信...

【专利技术属性】
技术研发人员:陈川福忻振文
申请(专利权)人:荣耀终端有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1