CN116501475B - 线程调度方法、系统以及介质 - Google Patents

线程调度方法、系统以及介质 Download PDF

Info

Publication number
CN116501475B
CN116501475B CN202310735565.3A CN202310735565A CN116501475B CN 116501475 B CN116501475 B CN 116501475B CN 202310735565 A CN202310735565 A CN 202310735565A CN 116501475 B CN116501475 B CN 116501475B
Authority
CN
China
Prior art keywords
thread
task
execution result
value
sleep time
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
Application number
CN202310735565.3A
Other languages
English (en)
Other versions
CN116501475A (zh
Inventor
马小辉
柳阳
刘峥嵘
陈飞虎
李冬
唐志成
杜芬
尹莉燕
杨丹
丁嘉禾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Sunrise Technology Co ltd
Original Assignee
Hangzhou Sunrise Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Sunrise Technology Co ltd filed Critical Hangzhou Sunrise Technology Co ltd
Priority to CN202310735565.3A priority Critical patent/CN116501475B/zh
Publication of CN116501475A publication Critical patent/CN116501475A/zh
Application granted granted Critical
Publication of CN116501475B publication Critical patent/CN116501475B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Multi Processors (AREA)

Abstract

本申请公开了一种线程调度方法、系统以及介质,该方法通过获取当前周期内优先级值为M的第一任务线程的第一执行结果,将第一执行结果与上一周期的第二执行结果进行比对;将第一处理线程对应的休眠时间按预设比例增加,并将第一处理线程对应的第一累计值加1,循环执行以下步骤,直到第一处理线程的当前优先级值达到:在第一累计值大于第一处理线程对应的步进值的情况下,将第二处理线程对应的休眠时间按预设比例增加,并将第二处理线程对应的第二累计值加1,以及将第一累计值清零;将第一处理线程更新为对应于其当前优先级值递增1后的任务线程。实现了通过对线程的CPU资源分配进行自适应调整。

Description

线程调度方法、系统以及介质
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种线程调度方法、系统以及介质。
背景技术
线程调度是指根据线程优先级分配CPU资源,保证高优先级任务优先执行,对于智能采集终端,采集数据的效率是需要优先提升的指标。目前对于智能采集终端的多线程调度主要有以下几种方式:一是对于不同线程按照默认优先级配置,线程执行过程中设置固定的休眠时间,不同线程休眠时间不同,优先级越高休眠时间越短,另一种是使用操作系统的线程优先级配置功能,为每个线程设置不同的优先级,可以对线程执行优先级进行控制。
然而,前者调整休眠时间的方式无法适应于实际情况确定其最优值,而后者直接对线程优先级进行固定配置难以将数据采集效率最大化。
针对上述问题,目前亟待有效的技术解决方案。
发明内容
本申请的目的在于提供一种线程调度方法、系统以及介质,实现了通过对线程的CPU资源分配进行自适应调整,灵活调整休眠时间,提高数据采集的完整性以及高效性,提升智能采集终端的整体性能。
第一方面,本申请提供了一种线程调度方法,应用于采集终端,所述采集终端的多个任务线程划分到M个优先级,其中,所述多个任务线程对应的优先级值,按照优先次序依次从1递增至M,所述线程调度方法包括:
在自适应调整休眠时间的过程的预设周期时长到达时,获取当前周期内优先级值为M的第一任务线程的第一执行结果,将所述第一执行结果与上一周期内优先级值为M的第一任务线程的第二执行结果进行比对,所述第一任务线程用于执行数据采集任务;
响应于所述第一执行结果的数据采集成功值大于所述第二执行结果的比对结果,将优先级值为1的任务线程确定为第一处理线程后,将所述第一处理线程对应的休眠时间按预设比例增加,并将所述第一处理线程对应的第一累计值加1,循环执行以下步骤,直到所述第一处理线程的当前优先级值达到,其中数据采集成功值表征所述第一任务线程在一个周期内数据采集对应的数据反馈对象的个数:
将所述第一处理线程的当前优先级值递增1得到的优先级值对应的任务线程确定为第二处理线程;在所述第一累计值大于所述所述第一处理线程对应的步进值的情况下,将所述第二处理线程对应的休眠时间按所述预设比例增加,并将所述第二处理线程对应的第二累计值加1,以及将所述第一累计值清零,其中步进值表征触发优先级高一级的任务线程增加休眠时间,需要优先级低一级的任务线程增加休眠时间的总次数;
将所述第一处理线程更新为对应于其当前优先级值递增1后的任务线程。
可选的,在所述将所述第一执行结果与上一周期内优先级值为M的第一任务线程的第二执行结果进行比对,所述第一任务线程用于执行数据采集任务之后,还包括:
响应于所述第一执行结果的数据采集量等于所述第二执行结果的比对结果,将每个任务线程当前的休眠时间作为目标休眠时间,并结束自适应调整休眠时间的过程。
可选的,在所述将所述第一执行结果与上一周期内优先级值为M的第一任务线程的第二执行结果进行比对,所述第一任务线程用于执行数据采集任务之后,还包括:
响应于所述第一执行结果的数据采集量小于所述第二执行结果的比对结果,输出预警信息。
可选的,在将所述第一处理线程更新为对应于其当前优先级值递增1后的任务线程之前,还包括:
在所述第一累计值小于或等于所述第一处理线程对应的步进值的情况下,结束循环过程。
可选的,在自适应调整休眠时间的过程的预设周期时长到达时,获取当前周期内优先级值为M的第一任务线程的第一执行结果之前,还包括:
接收并更新预设周期时长。
可选的,在自适应调整休眠时间的过程的预设周期时长到达时,获取当前周期内优先级值为M的第一任务线程的第一执行结果之前,还包括:
接收并更新每个所述任务线程对应的步进值。
可选的,在自适应调整休眠时间的过程的预设周期时长到达时,获取当前周期内优先级值为M的第一任务线程的第一执行结果之前,还包括:
接收并更新每个所述任务线程对应的休眠时间。
可选的,在自适应调整休眠时间的过程的预设周期时长到达时,获取当前周期内优先级值为M的第一任务线程的第一执行结果之前,还包括:
接收并更新每个所述任务线程对应的优先级值。
第二方面,本申请提供了一种线程调度系统,所述线程调度系统包括:存储器及处理器,所述存储器中包括线程调度方法的程序,所述线程调度方法的程序被所述处理器执行时实现以下步骤:
在自适应调整休眠时间的过程的预设周期时长到达时,获取当前周期内优先级值为M的第一任务线程的第一执行结果,将所述第一执行结果与上一周期内优先级值为M的第一任务线程的第二执行结果进行比对,所述第一任务线程用于执行数据采集任务;
响应于所述第一执行结果的数据采集成功值大于所述第二执行结果的比对结果,将优先级值为1的任务线程确定为第一处理线程后,将所述第一处理线程对应的休眠时间按预设比例增加,并将所述第一处理线程对应的第一累计值加1,循环执行以下步骤,直到所述第一处理线程的当前优先级值达到,其中数据采集成功值表征所述第一任务线程在一个周期内数据采集对应的数据反馈对象的个数:
将所述第一处理线程的当前优先级值递增1得到的优先级值对应的任务线程确定为第二处理线程;在所述第一累计值大于所述第一处理线程对应的步进值的情况下,将所述第二处理线程对应的休眠时间按所述预设比例增加,并将所述第二处理线程对应的第二累计值加1,以及将所述第一累计值清零,其中步进值表征触发优先级高一级的任务线程增加休眠时间,需要优先级低一级的任务线程增加休眠时间的总次数;
将所述第一处理线程更新为对应于其当前优先级值递增1后的任务线程。
第三方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质中包括线程调度方法程序,所述线程调度方法程序被处理器执行时,实现如本申请中任一实施例所述的线程调度方法的步骤。
由上可知,本申请提供的线程调度方法、系统以及介质,通过在自适应调整休眠时间的过程的预设周期时长到达时,获取当前周期内优先级值为M的第一任务线程的第一执行结果,将所述第一执行结果与上一周期内优先级值为M的第一任务线程的第二执行结果进行比对,所述第一任务线程用于执行数据采集任务;响应于所述第一执行结果的数据采集成功值大于所述第二执行结果的比对结果,将优先级值为1的任务线程确定为第一处理线程后,将所述第一处理线程对应的休眠时间按预设比例增加,并将所述第一处理线程对应的第一累计值加1,循环执行以下步骤,直到所述第一处理线程的当前优先级值达到,其中数据采集成功值表征所述第一任务线程在一个周期内数据采集对应的数据反馈对象的个数:将所述第一处理线程的当前优先级值递增1得到的优先级值对应的任务线程确定为第二处理线程;在所述第一累计值大于所述第一处理线程对应的步进值的情况下,将所述第二处理线程对应的休眠时间按所述预设比例增加,并将所述第二处理线程对应的第二累计值加1,以及将所述第一累计值清零,其中步进值表征触发优先级高一级的任务线程增加休眠时间,需要优先级低一级的任务线程增加休眠时间的总次数;将所述第一处理线程更新为对应于其当前优先级值递增1后的任务线程。实现了通过对线程的CPU资源分配进行自适应调整,灵活调整休眠时间,提高数据采集的完整性以及高效性,提升智能采集终端的整体性能。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种线程调度方法的流程图;
图2为本申请实施例提供的一种线程调度方法具体实施过程的示意图;
图3为本申请实施例提供的另一种线程调度方法的流程图;
图4为本申请实施例提供的另一种线程调度方法的流程图;
图5为本申请实施例提供的一种线程调度系统的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,为本申请实施例提供的一种线程调度方法的流程图。该线程调度方法可用于具有计算能力的采集终端,其中,采集终端是指用于采集数据的终端设备,其主要作用是将现实世界中的数据信息转换为数字信号,以便计算机或其他数字设备进行处理、存储和分析。采集终端可以采集各种类型的数据信息,如温度、湿度、压力、速度、位置等等,这些数据通常用于监测、控制、诊断和预测等方面。采集终端的多个任务线程划分到M个优先级,其中,多个任务线程对应的优先级值,按照优先次序依次从1递增至M,可以理解的是,M的具体取值由用户定义任务线程的优先级档位决定,M为自然数。该线程调度方法,包括以下步骤:
步骤S101、在自适应调整休眠时间的过程的预设周期时长到达时,获取当前周期内优先级值为M的第一任务线程的第一执行结果,将所述第一执行结果与上一周期内优先级值为M的第一任务线程的第二执行结果进行比对,所述第一任务线程用于执行数据采集任务。
需要说明的是,采集终端的任务线程可以包括多个不同的任务线程,例如,数据采集线程、数据处理线程、存储管理线程、通信管理线程、以及系统监控线程等,其中,数据采集线程负责从传感器或其他设备中读取数据,并将其转换成数字信号。这个线程需要实时运行,以确保采集到的数据及时、准确,例如,采集电能表数据,采集测温点数据等;数据处理线程对采集到的原始数据进行处理和计算,得到有意义的结果。例如,对温度数据进行滤波处理,对速度数据进行统计分析等;存储管理线程负责管理采集到的数据的存储,包括数据的缓存、存储格式、存储路径等。这个线程需要考虑存储空间的限制、数据访问的速度等因素;通信管理线程负责与其他设备进行通信,如与后台服务器进行数据上传、与其他采集终端进行数据交互等。这个线程需要考虑网络带宽、通信协议等因素。例如,终端移动公网通信,终端调试端口通信等;系统监控线程负责对采集终端系统进行监控和管理,包括资源占用情况、错误日志收集、异常处理等。这个线程需要能够快速响应和处理异常情况,确保采集终端的稳定性和可靠性,例如,终端显示刷新等。
进一步地,在实际应用场景中可能会因为采集对象、处理方式、传输速率等因素而有所不同,对不同的任务线程设置不同的优先级,用户可以在自适应调整休眠时间的过程开始之前,采集终端可以接收并更新每个任务线程对应的优先级值,实例的,数据采集线程为最基础、最关键的线程,负责从采集设备中读取数据。因此,数据采集线程的优先级应该设置为最高,以确保能够及时、准确地采集到数据,而其它线程可以依次设置为按优先级递减的顺序,如数据处理线程,系统监控线程,存储管理线程,以及通信管理线程。线程的优先级可以通过设置线程优先级函数、调整系统调度策略、或使用信号量控制线程调度来调整。示例的,由于每个线程执行需要占用CPU时间片,本申请实施例通过增加低优先级线程的休眠时间来提供更多的CPU资源给数据采集线程,而优先级值为M的第一任务线程为优先级最高的任务线程,即数据采集线程。那么采集终端的休眠时间的自适应调整休眠时间的过程,可以是通过周期性地获取数据采集结果作为调整参考。例如,在预设周期时长到达时,其中在自适应调整休眠时间的过程开始之前,采集终端可以接收并更新预设周期时长,而预设周期时长可以设置在5到15分钟。通过将当前周期成功采集到数据的电能表个数与上一周期内优先级值为M的第一任务线程的作比较,那么如果电能表的数量增多,则说明采集终端可以采集到更多的电能表的数据,因而需要提供更多的CPU资源给数据采集线程,提高数据采集线程执行频次,进一步提高采集的电能表数量。而当采集到的电能表个数不再增加,表示电能表的回复性能达到最大。当然,除了前述对休眠时间的调整设置了单位时间成功数量作为考核指标,用户还可以通过设置别的考核指标,来对不同优先级对应的休眠时间进行调整,在此本申请不作限制。
可选的,在自适应调整休眠时间的过程的预设周期时长到达时,获取当前周期内优先级值为M的第一任务线程的第一执行结果之前,还包括:
接收并更新每个所述任务线程对应的优先级值。
需要说明的是,用户可以对多个任务线程的优先级值进行定义或者更新调整,更好地完成采集终端的功能实现。
步骤S102、响应于所述第一执行结果的数据采集成功值大于所述第二执行结果的比对结果,将优先级值为1的任务线程确定为第一处理线程后,将所述第一处理线程对应的休眠时间按预设比例增加,并将所述第一处理线程对应的第一累计值加1,循环执行以下步骤,直到所述第一处理线程的当前优先级值达到,其中数据采集成功值表征所述第一任务线程在一个周期内数据采集对应的数据反馈对象的个数。
需要说明的是,如图2所示,第一执行结果的数据采集成功值大于第二执行结果的比对结果,说明采集终端还可以对应于更多的数据反馈对象,为了确保数据采集线程的采集时间,可以将低优先级的任务线程的休眠时间适当增加,来确保数据采集线程的执行时间。本申请实施例从优先级最低,即对应于优先级值为1的任务线程开始调整,最后循环遍历至优先级值仅次于数据采集线程的任务线程,则结束自适应调整休眠时间的过程。预设比例可以是10%、20%等,具体由用户依据数据采集线程的参数设置来确定。相应的,第一累计值具体指的是第一处理线程增加休眠时间的次数,可以理解的是,低优先级的任务线程可以进行多次休眠时间的调整,但是仅对同一优先级的任务线程调整不利于采集终端对于任务线程的调度,影响任务线程的执行状况,因而需要对不同优先级的任务线程进行休眠时间的分级调整。
步骤S1021、将所述第一处理线程的当前优先级值递增1得到的优先级值对应的任务线程确定为第二处理线程
可选的,在自适应调整休眠时间的过程的预设周期时长到达时,获取当前周期内优先级值为M的第一任务线程的第一执行结果之前,还包括:
接收并更新每个所述任务线程对应的步进值。
需要说明的是,用户可以对每个优先级对应的任务线程的步进值进行调整,相当于对任务线程的休眠时间的调整程度进行更新。
可选的,在自适应调整休眠时间的过程的预设周期时长到达时,获取当前周期内优先级值为M的第一任务线程的第一执行结果之前,还包括:
接收并更新每个所述任务线程对应的休眠时间。
需要说明的是,用户可以对每个优先级对应的任务线程的休眠时间进行调整,相当于对任务线程的休眠时间的长短进行更新,更高效地进行任务线程的调度。
步骤S1022、在所述第一累计值大于所述第一处理线程对应的步进值的情况下,将所述第二处理线程对应的休眠时间按所述预设比例增加,并将所述第二处理线程对应的第二累计值加1,以及将所述第一累计值清零。
需要说明的是,第一累计值大于第一处理线程对应的步进值,意味着第一处理线程的休眠时间的增加次数达到触发所述第二处理线程的休眠时间调整的参考阈值,此时需要将第二处理线程对应的休眠时间按预设比例增加,例如,按照10%的比例增加,同时将第二处理线程对应的第二累计值加1,进行休眠时间调整次数的记录。最后需要将第一累计值进行清零,重新记录第一处理线程的调整次数。
可选的,如图3所示,在将所述第一处理线程更新为对应于其当前优先级值递增1后的任务线程之前,还包括:
步骤S1024、在所述第一累计值小于或等于所述第一处理线程对应的步进值的情况下,结束循环过程。
需要说明的是,第一累计值小于或等于第一处理线程对应的步进值,意味着还未达到调整下一优先级的任务线程的休眠时间的条件,因而不需要进行循环遍历过程,后续优先级更高的任务线程也不会有所调整,可以直接结束循环过程。
步骤S1023、将所述第一处理线程更新为对应于其当前优先级值递增1后的任务线程。
需要说明的是,自适应调整休眠时间的过程从优先级值最低的任务线程开始,例如,从优先级值为1的任务线程开始调整,在循环处理过程中,将可能会涉及对于优先级值为2的任务线程的休眠时间的调整,那么在优先级值为2的任务线程的休眠时间被调整后,可能同样会触发优先级值为3的任务线程的调整,因而需要进行循环遍历,直至到优先级值为的任务线程。
上述,通过在自适应调整休眠时间的过程的预设周期时长到达时,获取当前周期内优先级值为M的第一任务线程的第一执行结果,将所述第一执行结果与上一周期内优先级值为M的第一任务线程的第二执行结果进行比对,所述第一任务线程用于执行数据采集任务;响应于所述第一执行结果的数据采集成功值大于所述第二执行结果的比对结果,将优先级值为1的任务线程确定为第一处理线程后,将所述第一处理线程对应的休眠时间按预设比例增加,并将所述第一处理线程对应的第一累计值加1,循环执行以下步骤,直到所述第一处理线程的当前优先级值达到,其中数据采集成功值表征所述第一任务线程在一个周期内数据采集对应的数据反馈对象的个数:将所述第一处理线程的当前优先级值递增1得到的优先级值对应的任务线程确定为第二处理线程;在所述第一累计值大于所述第一处理线程对应的步进值的情况下,将所述第二处理线程对应的休眠时间按所述预设比例增加,并将所述第二处理线程对应的第二累计值加1,以及将所述第一累计值清零,其中步进值表征触发优先级高一级的任务线程增加休眠时间,需要优先级低一级的任务线程增加休眠时间的总次数;将所述第一处理线程更新为对应于其当前优先级值递增1后的任务线程。实现了通过对线程的CPU资源分配进行自适应调整,灵活调整休眠时间,提高数据采集的完整性以及高效性,提升智能采集终端的整体性能。
在一个实施例中,如图4所示,在前述实施例的基础上,在所述将所述第一执行结果与上一周期内优先级值为M的第一任务线程的第二执行结果进行比对,所述第一任务线程用于执行数据采集任务之后,还包括:
步骤S103、响应于所述第一执行结果的数据采集量等于所述第二执行结果的比对结果,将每个任务线程当前的休眠时间作为目标休眠时间,并结束自适应调整休眠时间的过程。
需要说明的是,第一执行结果的数据采集量等于所述第二执行结果,以采集电能表数据为例,意味着成功采集到数据的电能表个数并没有增加,电能表的回复性能达到最大,因而不需要对休眠时间进行调整,将每个任务线程当前的休眠时间作为目标休眠时间,并结束自适应调整休眠时间的过程。
在一个实施例中,在前述实施例的基础上,在所述将所述第一执行结果与上一周期内优先级值为M的第一任务线程的第二执行结果进行比对,所述第一任务线程用于执行数据采集任务之后,还包括:
响应于所述第一执行结果的数据采集量小于所述第二执行结果的比对结果,输出预警信息。
需要说明的是,第一执行结果的数据采集量小于所述第二执行结果,以采集电能表数据为例,意味着成功采集到数据的电能表个数减少,可能存在电能表出现异常的情况,需要输出预警信息,提醒后台人员对电能表进行排查,避免影响电能表数据的完整性。
请参照图5,还公开了一种线程调度系统,包括存储器21和处理器22,所述存储器21中包括线程调度方法的程序,所述线程调度方法的程序被所述处理器22执行时实现以下步骤:
在自适应调整休眠时间的过程的预设周期时长到达时,获取当前周期内优先级值为M的第一任务线程的第一执行结果,将所述第一执行结果与上一周期内优先级值为M的第一任务线程的第二执行结果进行比对,所述第一任务线程用于执行数据采集任务;
响应于所述第一执行结果的数据采集成功值大于所述第二执行结果的比对结果,将优先级值为1的任务线程确定为第一处理线程后,将所述第一处理线程对应的休眠时间按预设比例增加,并将所述第一处理线程对应的第一累计值加1,循环执行以下步骤,直到所述第一处理线程的当前优先级值达到,其中数据采集成功值表征所述第一任务线程在一个周期内数据采集对应的数据反馈对象的个数:
将所述第一处理线程的当前优先级值递增1得到的优先级值对应的任务线程确定为第二处理线程;
在所述第一累计值大于所述第一处理线程对应的步进值的情况下,将所述第二处理线程对应的休眠时间按所述预设比例增加,并将所述第二处理线程对应的第二累计值加1,以及将所述第一累计值清零,其中步进值表征触发优先级高一级的任务线程增加休眠时间,需要优先级低一级的任务线程增加休眠时间的总次数;
将所述第一处理线程更新为对应于其当前优先级值递增1后的任务线程。
上述,该线程调度系统通过对线程的CPU资源分配进行自适应调整,实现了灵活调整休眠时间,提高数据采集的完整性以及高效性,提升智能采集终端的整体性能。值得说明的是,该线程调度系统可本申请任一实施例中所述的线程调度方法的执行主体,具有相同的有益效果。
本发明还提供了一种计算机可读存储介质,所述可读存储介质中包括线程调度方法程序,所述线程调度方法程序被处理器执行时,实现如上述任一项所述的线程调度方法的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (10)

1.一种线程调度方法,应用于采集终端,其特征在于,所述采集终端的多个任务线程划分到M个优先级,其中,所述多个任务线程对应的优先级值,按照优先次序依次从1递增至M,所述线程调度方法包括:
在自适应调整休眠时间的过程的预设周期时长到达时,获取当前周期内优先级值为M的第一任务线程的第一执行结果,将所述第一执行结果与上一周期内优先级值为M的第一任务线程的第二执行结果进行比对,所述第一任务线程用于执行数据采集任务;
响应于所述第一执行结果的数据采集成功值大于所述第二执行结果的比对结果,将优先级值为1的任务线程确定为第一处理线程后,将所述第一处理线程对应的休眠时间按预设比例增加,并将所述第一处理线程对应的第一累计值加1,循环执行以下步骤,直到所述第一处理线程的当前优先级值达到,其中数据采集成功值表征所述第一任务线程在一个周期内数据采集对应的数据反馈对象的个数:
将所述第一处理线程的当前优先级值递增1得到的优先级值对应的任务线程确定为第二处理线程;
在所述第一累计值大于所述第一处理线程对应的步进值的情况下,将所述第二处理线程对应的休眠时间按所述预设比例增加,并将所述第二处理线程对应的第二累计值加1,以及将所述第一累计值清零,其中步进值表征触发优先级高一级的任务线程增加休眠时间,需要优先级低一级的任务线程增加休眠时间的总次数;
将所述第一处理线程更新为对应于其当前优先级值递增1后的任务线程。
2.根据权利要求1所述的线程调度方法,其特征在于,在所述将所述第一执行结果与上一周期内优先级值为M的第一任务线程的第二执行结果进行比对,所述第一任务线程用于执行数据采集任务之后,还包括:
响应于所述第一执行结果的数据采集量等于所述第二执行结果的比对结果,将每个任务线程当前的休眠时间作为目标休眠时间,并结束自适应调整休眠时间的过程。
3.根据权利要求1所述的线程调度方法,其特征在于,在所述将所述第一执行结果与上一周期内优先级值为M的第一任务线程的第二执行结果进行比对,所述第一任务线程用于执行数据采集任务之后,还包括:
响应于所述第一执行结果的数据采集量小于所述第二执行结果的比对结果,输出预警信息。
4.根据权利要求1所述的线程调度方法,其特征在于,在将所述第一处理线程更新为对应于其当前优先级值递增1后的任务线程之前,还包括:
在所述第一累计值小于或等于所述第一处理线程对应的步进值的情况下,结束循环过程。
5.根据权利要求1所述的线程调度方法,其特征在于,在自适应调整休眠时间的过程的预设周期时长到达时,获取当前周期内优先级值为M的第一任务线程的第一执行结果之前,还包括:
接收并更新预设周期时长。
6.根据权利要求1所述的线程调度方法,其特征在于,在自适应调整休眠时间的过程的预设周期时长到达时,获取当前周期内优先级值为M的第一任务线程的第一执行结果之前,还包括:
接收并更新每个所述任务线程对应的步进值。
7.根据权利要求1所述的线程调度方法,其特征在于,在自适应调整休眠时间的过程的预设周期时长到达时,获取当前周期内优先级值为M的第一任务线程的第一执行结果之前,还包括:
接收并更新每个所述任务线程对应的休眠时间。
8.根据权利要求1所述的线程调度方法,其特征在于,在自适应调整休眠时间的过程的预设周期时长到达时,获取当前周期内优先级值为M的第一任务线程的第一执行结果之前,还包括:
接收并更新每个所述任务线程对应的优先级值。
9.一种线程调度系统,其特征在于,该线程调度系统包括:存储器及处理器,所述存储器中包括线程调度方法的程序,所述线程调度方法的程序被所述处理器执行时实现以下步骤:
在自适应调整休眠时间的过程的预设周期时长到达时,获取当前周期内优先级值为M的第一任务线程的第一执行结果,将所述第一执行结果与上一周期内优先级值为M的第一任务线程的第二执行结果进行比对,所述第一任务线程用于执行数据采集任务;
响应于所述第一执行结果的数据采集成功值大于所述第二执行结果的比对结果,将优先级值为1的任务线程确定为第一处理线程后,将所述第一处理线程对应的休眠时间按预设比例增加,并将所述第一处理线程对应的第一累计值加1,循环执行以下步骤,直到所述第一处理线程的当前优先级值达到,其中数据采集成功值表征所述第一任务线程在一个周期内数据采集对应的数据反馈对象的个数:
将所述第一处理线程的当前优先级值递增1得到的优先级值对应的任务线程确定为第二处理线程;在所述第一累计值大于所述第一处理线程对应的步进值的情况下,将所述第二处理线程对应的休眠时间按所述预设比例增加,并将所述第二处理线程对应的第二累计值加1,以及将所述第一累计值清零,其中步进值表征触发优先级高一级的任务线程增加休眠时间,需要优先级低一级的任务线程增加休眠时间的总次数;
将所述第一处理线程更新为对应于其当前优先级值递增1后的任务线程。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括线程调度方法程序,所述线程调度方法程序被处理器执行时,实现如权利要求1至8中任一项所述的线程调度方法的步骤。
CN202310735565.3A 2023-06-21 2023-06-21 线程调度方法、系统以及介质 Active CN116501475B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310735565.3A CN116501475B (zh) 2023-06-21 2023-06-21 线程调度方法、系统以及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310735565.3A CN116501475B (zh) 2023-06-21 2023-06-21 线程调度方法、系统以及介质

Publications (2)

Publication Number Publication Date
CN116501475A CN116501475A (zh) 2023-07-28
CN116501475B true CN116501475B (zh) 2023-10-20

Family

ID=87318641

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310735565.3A Active CN116501475B (zh) 2023-06-21 2023-06-21 线程调度方法、系统以及介质

Country Status (1)

Country Link
CN (1) CN116501475B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117093272B (zh) * 2023-10-07 2024-01-16 飞腾信息技术有限公司 指令发送方法及处理器

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984598A (zh) * 2013-02-07 2014-08-13 宏达国际电子股份有限公司 用于线程调度的方法以及系统
CN107015850A (zh) * 2016-01-28 2017-08-04 博雅网络游戏开发(深圳)有限公司 线程调度方法和装置
CN107122193A (zh) * 2017-04-28 2017-09-01 湖南中车时代通信信号有限公司 一种消息线程挂起时间的动态调节方法
CN108664315A (zh) * 2017-03-30 2018-10-16 北京京东尚科信息技术有限公司 多线程动态处理业务的方法、电子设备和可读存储介质
CN109213589A (zh) * 2018-09-28 2019-01-15 深圳市景阳科技股份有限公司 一种消息处理的方法及装置
CN110597606A (zh) * 2019-08-13 2019-12-20 中国电子科技集团公司第二十八研究所 一种高速缓存友好的用户级线程调度方法
CN111077979A (zh) * 2019-12-09 2020-04-28 Oppo广东移动通信有限公司 功耗控制方法、存储介质及电子设备
CN111124651A (zh) * 2019-12-27 2020-05-08 中通服公众信息产业股份有限公司 一种分布式环境多线程并发调度的方法
CN112346836A (zh) * 2020-10-28 2021-02-09 海光信息技术股份有限公司 共享计算资源的抢占方法、装置、用户设备及存储介质
CN114461668A (zh) * 2021-12-21 2022-05-10 天翼云科技有限公司 一种基于线程池的mysql数据库查询方法及装置
CN114510331A (zh) * 2022-01-26 2022-05-17 统信软件技术有限公司 一种线程数量调整方法、装置及计算设备
CN115278831A (zh) * 2021-04-30 2022-11-01 华为技术有限公司 一种休眠调度方法及设备
CN115421888A (zh) * 2022-09-01 2022-12-02 中国工商银行股份有限公司 基于多线程的文件处理方法及装置、电子设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8136113B2 (en) * 2006-12-20 2012-03-13 International Business Machines Corporation Method and apparatus for adjusting sleep time of fixed high-priority threads

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984598A (zh) * 2013-02-07 2014-08-13 宏达国际电子股份有限公司 用于线程调度的方法以及系统
CN107015850A (zh) * 2016-01-28 2017-08-04 博雅网络游戏开发(深圳)有限公司 线程调度方法和装置
CN108664315A (zh) * 2017-03-30 2018-10-16 北京京东尚科信息技术有限公司 多线程动态处理业务的方法、电子设备和可读存储介质
CN107122193A (zh) * 2017-04-28 2017-09-01 湖南中车时代通信信号有限公司 一种消息线程挂起时间的动态调节方法
CN109213589A (zh) * 2018-09-28 2019-01-15 深圳市景阳科技股份有限公司 一种消息处理的方法及装置
CN110597606A (zh) * 2019-08-13 2019-12-20 中国电子科技集团公司第二十八研究所 一种高速缓存友好的用户级线程调度方法
CN111077979A (zh) * 2019-12-09 2020-04-28 Oppo广东移动通信有限公司 功耗控制方法、存储介质及电子设备
CN111124651A (zh) * 2019-12-27 2020-05-08 中通服公众信息产业股份有限公司 一种分布式环境多线程并发调度的方法
CN112346836A (zh) * 2020-10-28 2021-02-09 海光信息技术股份有限公司 共享计算资源的抢占方法、装置、用户设备及存储介质
CN115278831A (zh) * 2021-04-30 2022-11-01 华为技术有限公司 一种休眠调度方法及设备
CN114461668A (zh) * 2021-12-21 2022-05-10 天翼云科技有限公司 一种基于线程池的mysql数据库查询方法及装置
CN114510331A (zh) * 2022-01-26 2022-05-17 统信软件技术有限公司 一种线程数量调整方法、装置及计算设备
CN115421888A (zh) * 2022-09-01 2022-12-02 中国工商银行股份有限公司 基于多线程的文件处理方法及装置、电子设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BoundWarden: Thread-enforced spatial memory safety through compile-time transformations;Smith Dhumbumroong;Science of Computer Programming;第198卷;全文 *
一种面向硬件线程的实时调度算法研究与设计;尹震宇;赵海;林恺;孙佩刚;王金英;;电子学报(第08期);全文 *
粗粒度多核系统任务级多线程调度研究;张多利;陈楠;汪杨;宋宇鲲;;微电子学与计算机(第01期);全文 *

Also Published As

Publication number Publication date
CN116501475A (zh) 2023-07-28

Similar Documents

Publication Publication Date Title
US9430288B2 (en) Job scheduling based on historical job data
CN109597685B (zh) 任务分配方法、装置和服务器
CN116501475B (zh) 线程调度方法、系统以及介质
CN113176978B (zh) 基于日志文件的监控方法、系统、设备及可读存储介质
CN110955586A (zh) 一种基于日志的系统故障预测方法、装置和设备
WO2020172852A1 (en) Computing resource scheduling method, scheduler, internet of things system, and computer readable medium
CN111985726A (zh) 资源数量预测方法、装置、电子设备及存储介质
CN112749013B (zh) 线程负载的检测方法、装置、电子设备及存储介质
WO2022257743A1 (zh) 流量抑制预测方法、电子设备、存储介质
CN113992525A (zh) 一种应用的容器数量调节方法及装置
CN115454322A (zh) 使用经训练的模型的工作负载管理
CN111324533A (zh) A/b测试方法、装置及电子设备
CN115269108A (zh) 一种数据处理方法、装置及设备
CN103309843A (zh) 服务器的配置方法和系统
CN115080356A (zh) 异常告警方法和装置
CN114598719A (zh) 智慧城市物联事件管理方法、装置及可读介质
CN112612587A (zh) 一种针对流量分析的Spark平台动态资源调配方法
CN116578359A (zh) 一种微服务状态调整方法、装置、设备及存储介质
US9354956B2 (en) Resource-utilization monitor with self-adjusting sample size
US9606887B2 (en) Persisting large volumes of data in an efficient unobtrusive manner
CN114496299B (zh) 一种基于深度学习的防疫信息处理方法及防疫服务系统
CN112015326A (zh) 集群数据处理方法、装置、设备及存储介质
CN112486683B (zh) 处理器控制方法、控制设备以及计算机可读存储介质
CN114417200A (zh) 网络数据的采集方法、装置及电子设备
CN110058810B (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