CN110502320B - 线程优先级调整方法、装置、电子设备及存储介质 - Google Patents
线程优先级调整方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110502320B CN110502320B CN201810479497.8A CN201810479497A CN110502320B CN 110502320 B CN110502320 B CN 110502320B CN 201810479497 A CN201810479497 A CN 201810479497A CN 110502320 B CN110502320 B CN 110502320B
- Authority
- CN
- China
- Prior art keywords
- priority
- thread
- configuration table
- core
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供了线程优先级调整方法、装置、电子设备及存储介质,该线程优先级调整方法包括:基于进程中各线程的运行参数,更新优先级配置表,其中,优先级配置表中记录了各线程的优先级;获取更新后的优先级配置表;按照更新后的优先级配置表,调整各线程的优先级。通过本发明实施例的线程优先级调整方法,在线程建立后,可以根据优先级配置表实现线程优先级的再次配置,能够实现增加线程优先级配置的多样性。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及线程优先级调整方法、装置、电子设备及存储介质。
背景技术
优先级是计算机线程调度策略中的一种重要参数,常用的线程调度策略包括SCHED_OTHER(分时调度策略),SCHED_FIFO(Sched-First In First Out,实时调度策略-先到先服务),SCHED_RR(Sched-Round Robin,实时调度策略-时间片轮转)等。
但是无论采用上述何种线程调度策略,在线程生成后,该线程的优先级便不会改变,但是线程的运行环境,例如处理器负载、使用场景等会动态变化,优先级固定的线程调度策略,不能够应对多变的运行环境。在相关的线程调度策略中,线程优先级配置单一,不足以应对各种运行环境。
发明内容
本发明实施例的目的在于提供一种线程优先级调整方法、装置、电子设备及存储介质,以实现增加线程优先级配置的多样性。具体技术方案如下:
第一方面,本发明实施例提供了一种线程优先级调整方法,所述方法包括:
基于进程中各线程的运行参数,更新优先级配置表,其中,所述优先级配置表中记录了各所述线程的优先级;
获取更新后的优先级配置表;
按照所述更新后的优先级配置表,调整各所述线程的优先级。
可选的,所述基于进程中各线程的运行参数,更新优先级配置表,包括:
获取进程中各线程的优先级及运行参数;
按照各所述线程的优先级,确定核心线程及非核心线程,其中,所述核心线程为优先级不低于预设核心优先级的线程,所述非核心线程为优先级低于所述预设核心优先级的线程;
当所述核心线程的运行参数满足预设降级规则时,在优先级配置表中,降低各所述非核心线程的优先级,得到更新后的优先级配置表。
可选的,所述获取进程中各线程的优先级及运行参数,包括:
获取优先级配置表;
在所述优先级配置表中读取进程中各线程的优先级;
从处理器内核中获取各所述线程的运行参数。
可选的,所述获取优先级配置表,包括:
确定当前的运行模式;
确定所述当前的运行模式对应的优先级配置表。
可选的,所述线程的运行参数包括该线程为运行状态的运行时间;
所述当所述核心线程的运行参数满足预设降级规则时,在优先级配置表中,降低各所述非核心线程的优先级,包括:
计算所述核心线程的运行时间与所有线程的运行时间和的比值,作为核心时间占比;
当所述核心时间占比小于预设占比时间阈值时,在优先级配置表中,降低各所述非核心线程的优先级。
可选的,所述线程的运行参数包括线程优先级模式配置参数;
所述基于进程中各线程的运行参数,更新优先级配置表,包括:
获取线程优先级模式配置参数,确定所述线程优先级模式配置参数对应的运行模式,作为当前运行模式;
选取与所述当前运行模式对应的优先级配置表,作为更新后的优先级配置表。
第二方面,本发明实施例提供了一种线程优先级调整装置,所述装置包括:
配置表更新模块,用于基于进程中各线程的运行参数,更新优先级配置表,其中,所述优先级配置表中记录了各所述线程的优先级;
配置表获取模块,用于获取更新后的优先级配置表;
优先级调整模块,用于按照所述更新后的优先级配置表,调整各所述线程的优先级。
可选的,所述配置表更新模块,包括:
参数获取子模块,用于获取进程中各线程的优先级及运行参数;
线程分类子模块,用于按照各所述线程的优先级,确定核心线程及非核心线程,其中,所述核心线程为优先级不低于预设核心优先级的线程,所述非核心线程为优先级低于所述预设核心优先级的线程;
优先级降低子模块,用于当所述核心线程的运行参数满足预设降级规则时,在优先级配置表中,降低各所述非核心线程的优先级,得到更新后的优先级配置表。
可选的,所述参数获取子模块,包括:
配置表获取单元,用于获取优先级配置表;
优先级获取单元,用于在所述优先级配置表中读取进程中各线程的优先级;
运行参数获取单元,用于从处理器内核中获取各所述线程的运行参数。
可选的,所述配置表获取单元,包括:
模式确定子单元,用于确定当前的运行模式;
配置表确定子单元,用于确定所述当前的运行模式对应的优先级配置表。
可选的,所述线程的运行参数包括该线程为运行状态的运行时间;
所述优先级降低子模块,包括:
时间占比计算单元,用于计算所述核心线程的运行时间与所有线程的运行时间和的比值,作为核心时间占比;
配置表更新单元,用于当所述核心时间占比小于预设占比时间阈值时,在优先级配置表中,降低各所述非核心线程的优先级。
可选的,所述线程的运行参数包括线程优先级模式配置参数;
所述配置表更新模块,包括:
当前模式确定子模块,用于获取线程优先级模式配置参数,确定所述线程优先级模式配置参数对应的运行模式,作为当前运行模式;
配置表更新子模块,用于选取与所述当前运行模式对应的优先级配置表,作为更新后的优先级配置表。
第三方面,本发明实施例提供了一种电子设备,包括处理器及存储器,所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序时,实现上述第一方面任一所述的线程优先级调整方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的线程优先级调整方法。
本发明实施例提供的线程优先级调整方法、装置、电子设备及存储介质,基于进程中各线程的运行参数,更新优先级配置表,其中,优先级配置表中记录了各线程的优先级;获取更新后的优先级配置表;按照更新后的优先级配置表,调整各线程的优先级。在线程建立后,可以根据优先级配置表实现线程优先级的再次配置,能够实现增加线程优先级配置的多样性。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的线程优先级调整方法的第一种示意图;
图2为本发明实施例的线程优先级调整方法的第二种示意图;
图3为本发明实施例的线程优先级调整方法的第三种示意图;
图4为本发明实施例的线程优先级调整方法的第四种示意图;
图5为本发明实施例的线程优先级调整装置的一种示意图;
图6为本发明实施例的电子设备的一种示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在相关技术中,在线程生成后,该线程的优先级便不会改变,但是线程的运行环境,例如处理器负载、使用场景等会动态变化,优先级固定的线程调度策略,不能够应对多变的运行环境。在相关的线程调度策略中,线程优先级配置单一,不足以应对各种运行环境。
有鉴于此,本发明实施例提供了一种线程优先级调整方法,参见图1,该方法包括:
S101,基于进程中各线程的运行参数,更新优先级配置表,其中,优先级配置表中记录了各线程的优先级。
本发明实施例中的线程优先级调整方法可以通过调整系统实现,调整系统为任意能够实现本发明实施例的线程优先级调整方法的系统。例如:
调整系统可以为一种设备,包括:处理器、存储器、通信接口和总线;处理器、存储器和通信接口通过总线连接并完成相互间的通信;存储器存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行本发明实施例的线程优先级调整方法。
调整系统还可以为一种应用程序,用于在运行时执行本发明实施例的线程优先级调整方法。
调整系统还可以为一种存储介质,用于存储可执行代码,可执行代码用于执行本发明实施例的线程优先级调整方法。
调整系统获取进程中各线程的运行参数,可以为调整系统周期性获取进程中各线程的运行参数;调整系统获取进程中各线程的运行参数,还可以为调整系统在检测到运行参数发生变化时,获取各线程的运行参数。调整系统基于当前各线程的运行参数,更新优先级配置表中各线程的优先级。
S102,获取更新后的优先级配置表。
调整系统获取更新后的优先级配置表。
S103,按照更新后的优先级配置表,调整各线程的优先级。
调整系统按照更新后的优先级配置表中线程的优先级,将各线程的优先级调整为相应的优先级,其中,线程的优先级越高,表征该线程接受处理资源的优先等级越高,例如,该线程对CPU或内存的占用率可以越高,该线程需要被优先处理等。
在本发明实施例中,更新优先级配置表,按照更新后的优先级配置表,调整各线程的优先级。在线程建立后,可以根据优先级配置表实现线程优先级的再次配置,能够实现增加线程优先级配置的多样性。
可选的,上述基于进程中各线程的运行参数,更新优先级配置表,包括:
步骤一,获取进程中各线程的优先级及运行参数。
调整系统可以周期性获取进程中各线程的优先级及运行参数。例如,调整系统扫描proc/pid下的各线程,并获取各线程的优先级及运行参数等信息。可选的,调整系统通过扫描proc/pid可以获取指定进程的各线程,从而实现指定进程中各线程的优先级的调整。
可选的,上述获取进程中各线程的优先级及运行参数,包括:
获取优先级配置表;在优先级配置表中读取进程中各线程的优先级;从处理器内核中获取各线程的运行参数。
调整系统还可以从优先级配置表中读取各线程的优先级,并从处理器内核中获取各线程的运行参数,例如各线程的运行时间等。
步骤二,按照各线程的优先级,确定核心线程及非核心线程,其中,核心线程为优先级不低于预设核心优先级的线程,非核心线程为优先级低于预设核心优先级的线程。
预设核心优先级为任意的优先级,可以根据实际运行环境自行设定。处理器的使用率越低,预设核心优先级可以设置的越低,处理器的使用率越高,预设核心优先级可以设置的越高。
步骤三,当核心线程的运行参数满足预设降级规则时,在优先级配置表中,降低各非核心线程的优先级,得到更新后的优先级配置表。
核心线程的运行参数满足预设降级规则,表征了核心线程的处理器使用率无法满足核心线程的实际运行需求。核心线程的运行参数满足预设降级规则,可以为核心线程的sum-exec(运行时间)与所有线程的运行时间和的比值小于预设占比时间阈值;核心线程的运行参数满足预设降级规则,还可以为核心线程的CPU占用率小于预设CPU占用率等。
可选的,线程的运行参数包括该线程为运行状态的运行时间;
相应的,上述当核心线程的运行参数满足预设降级规则时,在优先级配置表中,降低各非核心线程的优先级,包括:
计算核心线程的运行时间与所有线程的运行时间和的比值,作为核心时间占比;当核心时间占比小于预设占比时间阈值时,在优先级配置表中,降低各非核心线程的优先级。
预设占比时间阈值为任意数值,可以根据实际情况进行设定。例如,预设占比时间阈值可以为经验值,通过实验,测量核心线程对应的进程正常运行所需的核心线程的最小核心时间占比,作为预设占比时间阈值。
在本发明实施例中,当核心线程的运行时间与所有线程的运行时间和的比值小于预设占比时间阈值时,在优先级配置表中,降低各非核心线程的优先级,得到更新后的优先级配置表,并按照更新后的优先级配置表,调整各线程的优先级,实现线程优先级的动态配置,可以增加优先级高的线程的运行时间,保证高优先级线程的正常运行。
可选的,上述获取优先级配置表,包括:
步骤一,确定当前的运行模式。
运行模式可以为用户设定的,例如,针对监控设备,当用于监控车辆时,可以设定当前的运行模式设置为车辆检测模式,当用于监控行人时,可以设定当前的运行模式为行人检测模式等。运行模式也可以为调整系统自动识别的。例如,针对电脑,当调整系统检测到当前的焦点处于视频播放器的窗口时,确定当前的运行模式为视频播放模式,当调整系统检测到游戏运行时,确定当前的运行模式为游戏模式;针对监控设备,当调整系统检测到当前的时间为夜晚时,确定当前的运行模式设置为夜视模式等。
步骤二,确定当前的运行模式对应的优先级配置表。
预先为每个运行模式设定相应的优先级配置表,例如,对于车辆检测模式对应的优先级配置表,用于检测车辆的线程的优先级高于用于检测行人的线程的优先级。而对于行人检测模式对应的优先级配置表,用于检测行人的线程的优先级高于用于检测车辆的线程的优先级等。调整系统根据当前的运行模式,确定相应的优先级配置表。
在本发明实施例中,不同的运行模式对应不同的优先级配置表,在线程建立后,根据优先级配置表实现线程优先级的再次配置,能够实现增加线程优先级配置的多样性。
可选的,上述线程的运行参数包括线程优先级模式配置参数;
相应的,上述基于进程中各线程的运行参数,更新优先级配置表,包括:
步骤一,获取线程优先级模式配置参数,确定线程优先级模式配置参数对应的运行模式,作为当前运行模式。
在运行模式发生改变时,例如,当用户主动改变运行模式,或调整系统检测到运行模式改变的触发条件时,调整系统获取线程优先级模式配置参数,并确定线程优先级模式配置参数对应的运行模式,作为当前运行模式。线程优先级模式配置参数为预先设定的指定参数,例如,线程优先级模式配置参数可以为用户输入的用于选取运行模式的参数;线程优先级模式配置参数还可以为当前时间,在当前时间为夜晚时间时,确定线程优先级模式配置参数对应的运行模式为夜视模式等。
步骤二,选取与当前运行模式对应的优先级配置表,作为更新后的优先级配置表。
在本发明实施例中,在运行模式发生改变时,选取与当前运行模式对应的优先级配置表,作为更新后的优先级配置表,并按照更新后的优先级配置表,调整各线程的优先级,实现线程优先级的动态配置,在线程建立后,可以根据优先级配置表实现线程优先级的再次配置,能够实现增加线程优先级配置的多样性。
可选的,在本发明实施例的线程优先级调整方法可以通过线程优先级动态调整线程和线程优先级配置表动态调整线程实现,如图2所示,线程优先级配置表动态调整线程201,用于更新各优先级配置表203;线程优先级动态调整线程202,用于按照优先级配置表203配置各线程的优先级。
其中,线程优先级配置表动态调整线程201更新优先级配置表203的流程可以如图3所示,包括:
S301,获取线程优先级模式配置参数。
在满足预设参数获取条件时,调整系统获取线程优先级模式配置参数。例如,调整系统周期性获取线程优先级模式配置参数。
S302,获取当前的优先级配置表。
调整系统确定线程优先级模式配置参数对应的优先级模式,并确定该优先级模式对应的优先级配置表,作为当前的优先级配置表。
S303,获取各线程的优先级及运行参数。
线程的运行参数包括该线程的sum-exec(运行时间),即该线程运行过程中已占用的CPU的运行时间。
S304,确定核心线程及非核心线程,计算核心线程的核心时间占比。
按照各线程的优先级,确定核心线程及非核心线程,其中,核心线程为优先级不低于预设核心优先级的线程,非核心线程为优先级低于预设核心优先级的线程。计算核心线程的运行时间与所有线程的运行时间和的比值,作为核心时间占比;当核心时间占比小于预设占比时间阈值时,在优先级配置表中,降低各非核心线程的优先级。
S305,判断核心时间占比是否小于预设占比时间阈值,若核心时间占比小于预设占比时间阈值执行S306,若核心时间占比不小于预设占比时间阈值返回S301继续执行。
S306,降低当前的优先级配置表中非核心线程的优先级,得到更新后的优先级配置表。
线程优先级动态调整线程202按照优先级配置表203配置各线程的优先级的流程可以如图4所示,包括:
S401,获取线程优先级模式配置参数。
S402,获取当前的优先级配置表。
调整系统确定线程优先级模式配置参数对应的优先级模式,并确定该优先级模式对应的优先级配置表,作为当前的优先级配置表。
S403,获取各线程的属性信息。
扫描proc下各个进程文件夹,找到指定进程所在目录,扫描proc/pid下面各线程,获取各线程的属性信息,包括线程的名称、优先级等属性信息。
S404,按照当前的优先级配置表,更新各线程的优先级。
在本发明实施例中,更新优先级配置表,按照更新后的优先级配置表,调整各线程的优先级。在线程建立后,可以根据优先级配置表实现线程优先级的再次配置,能够实现增加线程优先级配置的多样性。
本发明实施例还提供了一种线程优先级调整装置,参见图5,该装置包括:
配置表更新模块501,用于基于进程中各线程的运行参数,更新优先级配置表,其中,优先级配置表中记录了各线程的优先级;
配置表获取模块502,用于获取更新后的优先级配置表;
优先级调整模块503,用于按照更新后的优先级配置表,调整各线程的优先级。
在本发明实施例中,更新优先级配置表,按照更新后的优先级配置表,调整各线程的优先级。在线程建立后,可以根据优先级配置表实现线程优先级的再次配置,能够实现增加线程优先级配置的多样性。
可选的,配置表更新模块501,包括:
参数获取子模块,用于获取进程中各线程的优先级及运行参数;
线程分类子模块,用于按照各线程的优先级,确定核心线程及非核心线程,其中,核心线程为优先级不低于预设核心优先级的线程,非核心线程为优先级低于预设核心优先级的线程;
优先级降低子模块,用于当核心线程的运行参数满足预设降级规则时,在优先级配置表中,降低各非核心线程的优先级,得到更新后的优先级配置表。
可选的,参数获取子模块,包括:
配置表获取单元,用于获取优先级配置表;
优先级获取单元,用于在优先级配置表中读取进程中各线程的优先级;
运行参数获取单元,用于从处理器内核中获取各线程的运行参数。
可选的,配置表获取单元,包括:
模式确定子单元,用于确定当前的运行模式;
配置表确定子单元,用于确定当前的运行模式对应的优先级配置表。
在本发明实施例中,不同的运行模式对应不同的优先级配置表,在线程建立后,根据优先级配置表实现线程优先级的再次配置,能够实现增加线程优先级配置的多样性。
可选的,线程的运行参数包括该线程为运行状态的运行时间;
优先级降低子模块,包括:
时间占比计算单元,用于计算核心线程的运行时间与所有线程的运行时间和的比值,作为核心时间占比;
配置表更新单元,用于当核心时间占比小于预设占比时间阈值时,在优先级配置表中,降低各非核心线程的优先级。
在本发明实施例中,当核心线程的运行时间与所有线程的运行时间和的比值小于预设占比时间阈值时,在优先级配置表中,降低各非核心线程的优先级,得到更新后的优先级配置表,并按照更新后的优先级配置表,调整各线程的优先级,实现线程优先级的动态配置,可以增加优先级高的线程的运行时间,保证高优先级线程的正常运行。
可选的,线程的运行参数包括线程优先级模式配置参数;
配置表更新模块501,包括:
当前模式确定子模块,用于获取线程优先级模式配置参数,确定线程优先级模式配置参数对应的运行模式,作为当前运行模式;
配置表更新子模块,用于选取与当前运行模式对应的优先级配置表,作为更新后的优先级配置表。
在本发明实施例中,在运行模式发生改变时,选取与当前运行模式对应的优先级配置表,作为更新后的优先级配置表,并按照更新后的优先级配置表,调整各线程的优先级,实现线程优先级的动态配置,在线程建立后,可以根据优先级配置表实现线程优先级的再次配置,能够实现增加线程优先级配置的多样性。
本发明实施例还提供了一种电子设备,参见图6,包括处理601及存储器602,存储器602用于存放计算机程序;处理器601用于执行存储器602上所存放的程序时,实现如下步骤:
基于进程中各线程的运行参数,更新优先级配置表,其中,优先级配置表中记录了各线程的优先级;
获取更新后的优先级配置表;
按照更新后的优先级配置表,调整各线程的优先级。
在本发明实施例中,更新优先级配置表,按照更新后的优先级配置表,调整各线程的优先级。在线程建立后,可以根据优先级配置表实现线程优先级的再次配置,能够实现增加线程优先级配置的多样性。
可选的,上述处理器601用于执行存储器602上所存放的程序时,还能够实现上述任一线程优先级调整方法。
可选的,本发明实施例的电子设备还可以包括通信接口及通信总线,其中,处理器601,通信接口,存储器602通过通信总线完成相互间的通信。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现实现如下步骤:
基于进程中各线程的运行参数,更新优先级配置表,其中,优先级配置表中记录了各线程的优先级;
获取更新后的优先级配置表;
按照更新后的优先级配置表,调整各线程的优先级。
在本发明实施例中,更新优先级配置表,按照更新后的优先级配置表,调整各线程的优先级。在线程建立后,可以根据优先级配置表实现线程优先级的再次配置,能够实现增加线程优先级配置的多样性。
可选的,计算机程序被处理器执行时,还能够实现上述任一线程优先级调整方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及存储介质的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (8)
1.一种线程优先级调整方法,其特征在于,所述方法包括:
基于进程中各线程的运行参数,更新优先级配置表,其中,所述优先级配置表中记录了各所述线程的优先级,其中,所述各线程的运行参数包括所述线程为运行状态的运行时间;
获取更新后的优先级配置表;
按照所述更新后的优先级配置表,调整各所述线程的优先级;
所述基于进程中各线程的运行参数,更新优先级配置表,包括:
获取进程中各线程的优先级及运行参数;
按照各所述线程的优先级,确定核心线程及非核心线程,其中,所述核心线程为优先级不低于预设核心优先级的线程,所述非核心线程为优先级低于所述预设核心优先级的线程;
当所述核心线程的运行参数满足预设降级规则时,在优先级配置表中,降低各所述非核心线程的优先级,得到更新后的优先级配置表,其中,所述预设降级规则包括所述核心线程的运行时间与所有线程的运行时间和的比值小于预设占比时间阈值。
2.根据权利要求1所述的方法,其特征在于,所述获取进程中各线程的优先级及运行参数,包括:
获取优先级配置表;
在所述优先级配置表中读取进程中各线程的优先级;
从处理器内核中获取各所述线程的运行参数。
3.根据权利要求2所述的方法,其特行在于,所述获取优先级配置表,包括:
确定当前的运行模式;
确定所述当前的运行模式对应的优先级配置表。
4.根据权利要求1所述的方法,其特征在于,所述当所述核心线程的运行参数满足预设降级规则时,在优先级配置表中,降低各所述非核心线程的优先级,包括:
计算所述核心线程的运行时间与所有线程的运行时间和的比值,作为核心时间占比;
当所述核心时间占比小于预设占比时间阈值时,在优先级配置表中,降低各所述非核心线程的优先级。
5.根据权利要求1所述的方法,其特征在于,所述线程的运行参数包括线程优先级模式配置参数;
所述基于进程中各线程的运行参数,更新优先级配置表,包括:
获取线程优先级模式配置参数,确定所述线程优先级模式配置参数对应的运行模式,作为当前运行模式;
选取与所述当前运行模式对应的优先级配置表,作为更新后的优先级配置表。
6.一种线程优先级调整装置,其特征在于,所述装置包括:
配置表更新模块,用于基于进程中各线程的运行参数,更新优先级配置表,其中,所述优先级配置表中记录了各所述线程的优先级,其中,所述各线程的运行参数包括所述线程为运行状态的运行时间;
配置表获取模块,用于获取更新后的优先级配置表;
优先级调整模块,用于按照所述更新后的优先级配置表,调整各所述线程的优先级;
所述基于进程中各线程的运行参数,更新优先级配置表,包括:
获取进程中各线程的优先级及运行参数;
按照各所述线程的优先级,确定核心线程及非核心线程,其中,所述核心线程为优先级不低于预设核心优先级的线程,所述非核心线程为优先级低于所述预设核心优先级的线程;
当所述核心线程的运行参数满足预设降级规则时,在优先级配置表中,降低各所述非核心线程的优先级,得到更新后的优先级配置表,其中,所述预设降级规则包括所述核心线程的运行时间与所有线程的运行时间和的比值小于预设占比时间阈值。
7.一种电子设备,其特征在于,包括处理器及存储器,所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810479497.8A CN110502320B (zh) | 2018-05-18 | 2018-05-18 | 线程优先级调整方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810479497.8A CN110502320B (zh) | 2018-05-18 | 2018-05-18 | 线程优先级调整方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110502320A CN110502320A (zh) | 2019-11-26 |
CN110502320B true CN110502320B (zh) | 2022-03-04 |
Family
ID=68584281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810479497.8A Active CN110502320B (zh) | 2018-05-18 | 2018-05-18 | 线程优先级调整方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110502320B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651272B (zh) * | 2020-05-28 | 2023-02-03 | 苏州大学 | 一种嵌入式实时操作的线程时间管理方法及装置 |
CN115016706B (zh) * | 2021-12-31 | 2023-05-30 | 荣耀终端有限公司 | 一种线程的调度方法及电子设备 |
CN114212096B (zh) * | 2022-02-22 | 2022-04-22 | 智道网联科技(北京)有限公司 | 自动驾驶车辆控制延时处理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937465A (zh) * | 2010-09-10 | 2011-01-05 | 中兴通讯股份有限公司 | 分布式文件系统及其中的上层文件系统的访问方法 |
CN104904169A (zh) * | 2012-04-23 | 2015-09-09 | 马维尔国际贸易有限公司 | 调整线程优先级以改进点到点(p2p)器件之间的吞吐量 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7401207B2 (en) * | 2003-04-25 | 2008-07-15 | International Business Machines Corporation | Apparatus and method for adjusting instruction thread priority in a multi-thread processor |
US7380247B2 (en) * | 2003-07-24 | 2008-05-27 | International Business Machines Corporation | System for delaying priority boost in a priority offset amount only after detecting of preemption event during access to critical section |
US20090138683A1 (en) * | 2007-11-28 | 2009-05-28 | Capps Jr Louis B | Dynamic instruction execution using distributed transaction priority registers |
US8689222B2 (en) * | 2008-10-30 | 2014-04-01 | International Business Machines Corporation | Controlling priority of multi-threaded hardware resources by system calls |
CN101777008A (zh) * | 2009-12-31 | 2010-07-14 | 中兴通讯股份有限公司 | 移动终端系统线程池实现方法及装置 |
US8904399B2 (en) * | 2010-03-15 | 2014-12-02 | Qualcomm Incorporated | System and method of executing threads at a processor |
CN103019835A (zh) * | 2011-09-26 | 2013-04-03 | 同方股份有限公司 | 一种多核处理器中断资源优化处理系统和方法 |
CN103870327A (zh) * | 2012-12-18 | 2014-06-18 | 华为技术有限公司 | 一种实时多任务调度方法和装置 |
CN106484537B (zh) * | 2016-09-30 | 2019-07-19 | 网易(杭州)网络有限公司 | 一种cpu核资源的分配方法和设备 |
CN107589994B (zh) * | 2017-08-16 | 2020-12-01 | 深圳市爱培科技术股份有限公司 | 应用进程优先级管理的方法、设备、系统及存储介质 |
-
2018
- 2018-05-18 CN CN201810479497.8A patent/CN110502320B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937465A (zh) * | 2010-09-10 | 2011-01-05 | 中兴通讯股份有限公司 | 分布式文件系统及其中的上层文件系统的访问方法 |
CN104904169A (zh) * | 2012-04-23 | 2015-09-09 | 马维尔国际贸易有限公司 | 调整线程优先级以改进点到点(p2p)器件之间的吞吐量 |
Non-Patent Citations (2)
Title |
---|
hread-level priority assignment in global multiprocessor scheduling for DAG tasks;Jiyeon Lee等;《The Journal of Systems and Software》;elsevier;20160331;第113卷;第246-256页 * |
基于多核系统的线程调度;覃中;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;中国学术期刊(光盘版)电子杂志社;20091115(第11期);I137-27 * |
Also Published As
Publication number | Publication date |
---|---|
CN110502320A (zh) | 2019-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110502320B (zh) | 线程优先级调整方法、装置、电子设备及存储介质 | |
US20170269967A1 (en) | Quality of service classes | |
US9503548B2 (en) | Subscriber based priority of messages in a publisher-subscriber domain | |
CN107547433B (zh) | 基于令牌漏桶进行限流的方法、装置和设备 | |
CN107665147B (zh) | 一种移动设备的系统清理方法及移动设备 | |
CN107463400B (zh) | 移动应用的热更新方法及终端设备 | |
US10263876B2 (en) | Adaptive service timeouts | |
US20160266776A1 (en) | Video content play | |
CN107943570B (zh) | 应用管理方法、装置、存储介质及电子设备 | |
CN107766134B (zh) | 一种移动设备的系统清理方法及移动设备 | |
CN110020383B (zh) | 一种页面数据请求处理方法及装置 | |
CN109697090B (zh) | 一种控制终端设备的方法、终端设备及存储介质 | |
CN111324471A (zh) | 服务调整方法、装置、设备及存储介质 | |
CN111240864A (zh) | 异步任务处理方法、装置、设备及计算机可读存储介质 | |
CN112596898A (zh) | 一种任务执行器调度的方法及装置 | |
CN108153454B (zh) | 多点触摸切换方法、装置、存储介质及终端设备 | |
CN112307381A (zh) | 一种页面加载的方法、装置、存储介质以及电子设备 | |
CN109634812B (zh) | Linux系统的进程CPU占用率控制方法、终端设备及存储介质 | |
CN117955919A (zh) | 数据下行任务处理方法、装置及计算设备 | |
US11467877B2 (en) | Throttling and limiting thread resources of service computing platform | |
CN111901425B (zh) | 基于Pareto算法的CDN调度方法、装置、计算机设备及存储介质 | |
CN111221651B (zh) | 负载均衡配置方法、装置、服务器及可读存储介质 | |
CN114124838A (zh) | 大数据平台的数据传输方法、装置及大数据平台 | |
CN110557555B (zh) | 智能摄像机的功能开启方法、装置、设备及系统 | |
CN112182454A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |