CN115421931B - 业务线程控制方法、装置、电子设备及可读存储介质 - Google Patents
业务线程控制方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN115421931B CN115421931B CN202211382247.5A CN202211382247A CN115421931B CN 115421931 B CN115421931 B CN 115421931B CN 202211382247 A CN202211382247 A CN 202211382247A CN 115421931 B CN115421931 B CN 115421931B
- Authority
- CN
- China
- Prior art keywords
- thread
- service
- resource
- controlled
- execution
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了业务线程控制方法、装置、电子设备及可读存储介质,应用于计算机技术领域,所述业务线程控制方法包括:获取目标业务线程池对应的线程初始资源,其中,所述目标业务线程池包括资源监控线程和待控制业务线程;若检测到所述待控制业务线程执行完成,则通过所述资源监控线程监控所述待控制业务线程,得到对应的线程实时资源;根据所述线程初始资源和所述线程实时资源,对所述待控制业务线程进行线程控制。本申请解决了通过系统线程池的线程执行业务程序的局限性高的技术问题。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种业务线程控制方法、装置、电子设备及可读存储介质。
背景技术
随着计算机技术的不断发展,对于软件开发领域的软件开发人员提出了更高的要求,与此同时,软件开发人员在开发过程中也迎来了较多挑战,例如,在.NET技术开发领域中,目前,通常通过.NET 技术框架下提供的系统线程池实现多线程管控,但是,由于不同业务程序对于性能要求不同,进而当部分对资源使用情况要求严苛的业务程序通过系统线程池运行时,将导致其资源占用情况突破资源占用上限,也即,通过系统线程池执行业务程序时对于程序占用资源可控性低,所以,当前通过系统线程池的线程执行业务程序的局限性高。
发明内容
本申请的主要目的在于提供一种业务线程控制方法、装置、电子设备及可读存储介质,旨在解决现有技术中通过系统线程池的线程执行业务程序的局限性高的技术问题。
为实现上述目的,本申请提供一种业务线程控制方法,所述业务线程控制方法包括:
获取目标业务线程池对应的线程初始资源,其中,所述目标业务线程池包括资源监控线程和待控制业务线程;
若检测到所述待控制业务线程执行完成,则通过所述资源监控线程监控所述待控制业务线程,得到对应的线程实时资源;
根据所述线程初始资源和所述线程实时资源,对所述待控制业务线程进行线程控制。
为实现上述目的,本申请还提供一种业务线程控制装置,所述业务线程控制装置包括:
获取模块,用于获取目标业务线程池对应的线程初始资源,其中,所述目标业务线程池包括资源监控线程和待控制业务线程;
监控模块,用于若检测到所述待控制业务线程执行完成,则通过所述资源监控线程监控所述待控制业务线程,得到对应的线程实时资源;
控制模块,用于根据所述线程初始资源和所述线程实时资源,对所述待控制业务线程进行线程控制。
本申请还提供一种电子设备,所述电子设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述业务线程控制方法的程序,所述业务线程控制方法的程序被处理器执行时可实现如上述的业务线程控制方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有实现业务线程控制方法的程序,所述业务线程控制方法的程序被处理器执行时实现如上述的业务线程控制方法的步骤。
本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的业务线程控制方法的步骤。
本申请提供了一种业务线程控制方法、装置、电子设备及可读存储介质,也即,获取目标业务线程池对应的线程初始资源,其中,所述目标业务线程池包括资源监控线程和待控制业务线程;若检测到所述待控制业务线程执行完成,则通过所述资源监控线程监控所述待控制业务线程,得到对应的线程实时资源;根据所述线程初始资源和所述线程实时资源,对所述待控制业务线程进行线程控制。由于目标业务线程池包括资源监控线程和待控制业务线程,并且通过资源监控线程可监控待控制业务线程执行前目标业务线程池对应的线程资源占用情况以及待控制业务线程执行完成后目标业务线程池对应的线程资源占用情况,进而通过目标业务线程池的待控制业务线程执行业务程序时,可实现基于目标业务线程池执行待控制业务线程执行过程中的资源增长情况,对待控制业务线程进行控制的目的,而非通过目标业务线程池的待控制业务线程执行业务程序时,无法以待控制业务线程执行过程中的资源增长情况为导向对待控制业务线程进行管控,进而使得业务程序的占用资源不可控,所以克服了由于不同业务程序对于性能要求不同,进而导致部分对资源使用情况要求严苛的业务程序无法通过系统线程池运行的技术缺陷,所以,提升了通过系统线程池的线程执行业务程序的局限性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请业务线程控制方法第一实施例的流程示意图;
图2为本申请业务线程控制方法目标业务线程池的业务线程的线程状态控制示意图;
图3为本申请业务线程控制方法第二实施例的流程示意图;
图4为本申请业务线程控制装置实施例的示意图;
图5为本申请实施例中业务线程控制方法涉及的硬件运行环境的设备结构示意图。
本申请目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本发明保护的范围。
实施例一
首先,应当理解的是,在.NET技术开发领域,多线程管理通常通过系统线程池来进行,也即,当需要执行多个作业任务时,可基于系统线程池中的业务执行线程分别执行作业任务,通过系统线程池不仅可基于配置和任务数量灵活调控线程数,而且可统一管理任务队列及线程,与此同时,由于系统线程池中的线程的可复用性,进而通过少量线程便可执行大量的作业任务,但是,目前的系统线程池无法适用于所有的业务程序,以监控程序为例,其对于执行过程中资源限制较为严苛,也即,在任意运行环境下进程的CPU(centralprocessing unit,中央处理器)资源使用不得超过3%,倘若监控程序通过系统线程池的业务执行线程执行,由于系统线程池无法缺乏对系统线程池占用资源的限制手段,进而可能导致监控程序在某些环境下运行时的资源占用突破上限,所以,通常该类程序并不通过系统线程池的业务执行程序进行执行,进而其执行时也无法体验到系统线程池所具备的优势,也即,当前通过系统线程池的线程执行业务程序的局限性高,所以,目前亟需一种提升系统线程池应用局限性的方法。
本申请实施例提供一种业务线程控制方法,在本申请业务线程控制方法的第一实施例中,参照图1,所述业务线程控制方法包括:
步骤S10,获取目标业务线程池对应的线程初始资源,其中,所述目标业务线程池包括资源监控线程和待控制业务线程;
步骤S20,若检测到所述待控制业务线程执行完成,则通过所述资源监控线程监控所述待控制业务线程,得到对应的线程实时资源;
步骤S30,根据所述线程初始资源和所述线程实时资源,对所述待控制业务线程进行线程控制。
在本实施例中,需要说明的是,所述目标业务线程池用于执行目标业务程序,所述目标业务程序既可以为对程序占用资源有限制要求的业务程序,也可以为对程序占用资源没有限制要求的业务程序,所述目标业务线程池包括资源监控线程和待控制业务线程,其中,所述待控制业务线程为等待进行控制的业务线程,对应于目标业务程序,所述资源监控线程用于监控所述目标业务程序通过目标业务线程池执行时的资源消耗情况,所述待控制业务线程可以为一个或多个,具体由目标业务程序的数量决定,所述待控制业务线程可通过监控资源监控线程进行控制,其线程状态影响目标业务线程池的线程资源消耗情况,所述资源监控线程为一个,具体由系统控制,不对线程消耗资源情况造成干扰,例如,在一种可实施的方式中,假设通过目标业务线程池执行目标业务程序A和目标业务程序B,则目标业务线程池可分配待控制业务线程a执行目标业务程序A,分配待控制业务线程b执行目标业务程序B,并通过资源监控线程c对待控制业务线程a和待控制业务线程b进行监控,以确保待控制业务线程a和待控制业务线程b执行时对目标业务线程池的业务线程的控制,其中,在所述目标业务线程池创建成功后,倘若还未执行任意业务程序,则所述目标业务线程池中的业务线程均位于等待队列,当存在业务程序时,则从等待队列中随机分配一个业务线程作为待控制业务线程进行业务程序的执行。
另外地,需要说明的是,对目标业务线程池的业务线程进行线程控制的目的在于实现对目标业务线程池的线程占用资源的可控,参照图2,图2为表示目标业务线程池的业务线程的线程状态控制示意图,其中,所述业务线程的线程状态包括“等待状态”、“执行状态”、“换出状态”以及“终止状态”,所述业务线程的线程状态控制路径包括由“等待状态”切换至“执行状态”、由“执行状态”切换至“换出状态”、由“执行状态”切换至“终止状态”、由“换出状态”切换至“终止状态”以及由“换出状态”切换至“等待状态”,当所述业务线程的线程状态为等待状态或换出(挂起)状态时,所述业务线程不消耗目标业务线程池的线程占用资源,当所述业务线程的线程状态为执行状态时,所述业务线程消耗系统资源,当所述业务线程的线程状态为终止状态时,所述业务线程移出所述目标业务线程池,进而通过对业务线程的线程状态切换(控制),即可实现目标业务线程池的占用的系统资源的可控。
另外地,需要说明的是,所述线程初始资源用于表征所述待控制业务线程执行前所述目标业务线程池中的业务线程占用的系统资源,所述线程实时资源用于表征所述待控制业务线程执行完成后所述目标业务线程池中的业务线程占用的系统资源,可通过所述资源监控线程周期性获取,其中,所述资源监控线程的监控周期具体可以为1s、2s或3s等。
作为一种示例,步骤S10至步骤S30包括:当检测到所述目标业务线程池的业务线程的线程状态均为等待状态时,通过所述目标业务线程池的资源监控线程实时监控所述目标业务线程池的所有业务线程的第一系统占用资源;当检测到所述目标业务线程池的待控制业务线程执行完成时,通过所述资源监控线程实时监控所述目标业务线程池的所有业务线程的第二系统占用资源;根据所述第一系统占用资源和第二系统占用资源,对所述待控制业务线程的线程状态进行控制,以管控所述目标业务线程池的所有业务线程的系统占用资源。
其中,所述根据所述线程初始资源和所述线程实时资源,对所述待控制业务线程进行线程控制的步骤包括:
步骤A10,根据所述线程初始资源和所述线程实时资源,确定执行所述待控制业务线程的线程消耗资源;
步骤A20,根据所述线程消耗资源,控制所述待控制业务线程的线程状态。
在本实施例中,需要说明的是,根据所述线程初始资源和所述线程消耗资源之间的差值,可计算出所述目标业务线程池执行所述待控制业务线程的线程消耗资源,进而根据所述目标业务线程池执行所述待控制业务线程时的资源增长情况,调控所述待控制业务线程的线程状态,以确保所述目标业务线程池所有业务线程占用的系统资源在可控范围内。
作为一种示例,步骤A10至步骤A20包括:将所述线程初始资源和所述线程消耗资源之间的差值作为执行所述待控制业务线程的线程消耗资源;根据所述线程消耗资源,控制所述目标业务线程池的业务线程的线程状态,其中,具体的控制方式由用户基于业务程序的缓急程度以及业务程序对应的业务执行线程所占用的系统资源的大小等多方面因素共同决定。
其中,所述线程消耗资源包括线程占用CPU消耗资源和线程内存消耗资源,所述根据所述线程初始资源和所述线程实时资源,确定执行所述待控制业务线程的线程消耗资源的步骤包括
步骤B10,获取所述待控制业务线程在预设监控周期内的线程执行周期数;
步骤B20,根据所述待控制业务线程的线程执行周期和所述线程执行周期数,确定所述线程占用CPU消耗资源;
步骤B30,根据所述线程实时资源和所述线程执行周期,确定所述线程内存消耗资源。
在本实施例中,需要说明的是,所述线程占用CPU消耗资源为所述待控制业务线程执行完成后所述待控制业务线程的CPU占用增长率,所述线程内存消耗资源为所述待控制业务线程执行完成后所述待控制业务线程的内存占用增长量,相关资源消耗情况均可通过所述资源监控线程进行实时监控。
另外地,需要说明的是,由于所述待控制业务线程在执行前至执行完成后的过程中,所述待控制业务线程的线程状态是会根据目标业务线程池所占用的系统资源进行动态调节,所以,所述预设监控周期用于表征所述待控制业务线程的线程状态处于执行状态的时间,具体可由用户自行设置,而所述待控制业务线程在执行过程中将被拆分成比较小的预设数量的线程执行周期,进而可根据待控制业务线程在预设监控周期内执行的周期数与线程执行周期的乘积,计算出所述待控制业务线程在预设监控周期内占用CPU的时间,进而所述待控制业务线程在预设监控周期内占用CPU的时间与预设监控周期的比值则为所述线程占用CPU消耗资源,所以,通过预设线程占用CPU消耗资源计算公式,即可计算得出所述线程占用CPU消耗资源,其中,所述预设线程占用CPU消耗资源计算公式如下:
另外地,需要说明的是,由于所述待控制业务线程在线程执行周期内执行时,均会对内存资源存在消耗,进而通过累加预设监控周期内所述待控制业务线程在每一线程执行周期对内存占用资源的消耗即为所述线程内存消耗资源,其中,对内存资源的消耗分为申请内存和释放内存,所以,单独线程执行周期内的内存消耗可以为正值,也可以负值,所以,通过预设线程内存消耗资源计算公式,即可计算得出所述线程内存消耗资源,其中,所述预设线程内存消耗资源计算公式如下:
其中,为所述线程内存消耗资源,N为单线程执行周期内的内存资源消耗,t为
所述预设监控周期,T为所述线程执行周期,其中,某一线程执行周期内的内存资源消耗可
通过所述第一线程池实时资源和线程周期数之间的比值计算得到。
作为一种示例,步骤B10至步骤B30包括:获取所述待控制业务线程在预设监控周期内的线程执行周期数;将所述待控制业务线程的线程执行周期和所述线程执行周期数输出至线程占用CPU消耗资源计算模型,得到所述线程占用CPU消耗资源,其中,所述线程占用CPU消耗资源计算模型设置有预设线程占用CPU消耗资源计算公式;根据所述线程池实时资源和所述线程执行周期数之间的比值,得到所述单线程执行周期内的内存资源消耗,将所述单线程执行周期内的内存资源消耗和所述线程执行周期输入至线程内存消耗资源计算模型,得到所述线程内存消耗资源,其中,所述线程内存消耗资源计算模型设置有预设线程内存消耗资源计算公式。
其中,在所述若检测到所述待控制业务线程执行完成,则通过所述资源监控线程监控所述待控制业务线程,得到对应的线程实时资源的步骤之前,所述业务线程控制方法还包括:
步骤C10,若检测到所述待控制业务线程处于执行状态,则通过所述资源监控线程监控所述待控制业务线程,得到对应的线程执行资源;
步骤C20,检测所述线程执行资源是否大于第一预设消耗资源阈值;
步骤C30,若是,则将所述待控制业务线程的线程状态由所述执行状态调整为换出状态。
在本实施例中,需要说明的是,所述线程执行资源用于表征所述待控制业务线程在执行过程中所占用的系统资源,在所述待控制业务线程的执行过程中,由于所述待控制业务线程是动态消耗系统资源的,所以需通过所述资源监控线程对待控制业务线程的执行过程实时监控,所述第一预设消耗资源阈值由用户预先设定,当所述待控制业务线程在执行过程中所占用的系统资源高于所述第一预设消耗资源阈值时,则表明所述待控制业务线程处于不健康状态,此时为了宏观管控所述目标业务线程池所有业务线程所占用的系统资源,需调整所述待控制业务线程的线程状态。
作为一种示例,步骤C10至步骤C30包括:若检测到所述待控制业务线程处于执行状态,则通过所述资源监控线程监控所述待控制业务线程,得到对应的线程执行资源;检测所述线程执行资源是否大于第一预设消耗资源阈值;若所述线程执行资源大于所述第一预设消耗资源阈值,则将所述待控制业务线程的线程状态由所述执行状态调整为换出状态。
其中,在所述将所述待控制业务线程的线程状态由所述执行状态调整为换出状态的步骤之后,所述业务线程控制方法还包括;
步骤D10,检测所述目标业务线程池的线程池消耗资源是否小于第二预设消耗资源阈值;
步骤D20,若是,则将所述待控制业务线程的线程状态由所述换出状态调整至所述执行状态。
在本实施例中,需要说明的是,在调整所述待控制业务线程的线程状态后,可通过所述资源监控线程实时监控所述目标业务线程池所有业务线程占用的系统内存资源,所以,所述线程池消耗资源用于表征所述待控制业务线程部分执行完成后所述目标业务线程池所有业务线程占用的系统资源,也即,当所述待控制业务线程在执行过程中一次执行完成时,则无需检测所述线程池消耗资源,当所述待控制业务线程在执行过程中多次执行完成时,则需检测所述线程池消耗资源,例如,假设业务程序C通过所述待控制业务线程d执行时,若待控制业务线程d在执行过程中其线程状态未调整(一次执行完成),则无需检测所述线程池消耗资源,若待控制业务线程d在执行过程中其线程状态曾由执行状态调整为换出状态,则调整后需检测线程池消耗资源,并且,当所述目标业务线程池的线程池消耗资源可控时,可唤醒所述待控制业务线程进行执行,以确保所述待控制业务线程执行完成。
作为一种示例,步骤D10至步骤D20包括:通过所述资源监控线程监控得到所述目标业务线程池的线程池消耗资源,并检测所述线程池消耗资源是否小于第二预设消耗资源阈值;若检测到所述线程池消耗资源小于所述第二预设消耗资源阈值,则将所述待控制业务线程的线程状态由所述换出状态调整至所述执行状态。
其中,所述业务线程控制方法还包括:
步骤E10,若检测到所述目标业务线程池存在终止业务线程,则将候选业务线程添加至所述目标业务线程池,以调节所述目标业务线程池的线程池容量。
在本实施例中,需要说明的是,所述终止业务线程用于表征处于终止状态的业务线程,所述候选业务线程用于表征处于候选状态的业务线程(未在所述目标业务线程池中),当所述目标业务线程池出现终止线程时,则表示该线程已经自动移出所述目标业务线程池,为了确保用户对目标业务线程池的线程池容量的自适应调节,可通过向所述目标业务线程池添加所述候选业务的方式实现,例如,在一种可实施的方式中,假设所述目标业务线程池中包含31个工作线程,当某一工作线程的线程状态处于终止状态时,则可向所述目标业务线程池中补充一个候选线程,以保证所述目标业务线程池的线程池容量不变。
作为一种示例,步骤E10包括:当检测到所述目标业务线程池存在终止业务线程时,根据所述目标业务线程池的线程池容量,在所述目标业务线程池添加候选业务线程添加,以使所述目标业务线程池的线程池容量保持不变。
本申请实施例提供了一种业务线程控制方法、装置、电子设备及可读存储介质,也即,获取目标业务线程池对应的线程初始资源,其中,所述目标业务线程池包括资源监控线程和待控制业务线程;若检测到所述待控制业务线程执行完成,则通过所述资源监控线程监控所述待控制业务线程,得到对应的线程实时资源;根据所述线程初始资源和所述线程实时资源,对所述待控制业务线程进行线程控制。由于目标业务线程池包括资源监控线程和待控制业务线程,并且通过资源监控线程可监控待控制业务线程执行前目标业务线程池对应的线程资源占用情况以及待控制业务线程执行完成后目标业务线程池对应的线程资源占用情况,进而通过目标业务线程池的待控制业务线程执行业务程序时,可实现基于目标业务线程池执行待控制业务线程执行过程中的资源增长情况,对待控制业务线程进行控制的目的,而非通过目标业务线程池的待控制业务线程执行业务程序时,无法以待控制业务线程执行过程中的资源增长情况为导向对待控制业务线程进行管控,进而使得业务程序的占用资源不可控,所以克服了由于不同业务程序对于性能要求不同,进而导致部分对资源使用情况要求严苛的业务程序无法通过系统线程池运行的技术缺陷,所以,提升了通过系统线程池的线程执行业务程序的局限性。
实施例二
进一步地,参照图3,在本申请另一实施例中,与上述实施例一相同或相似的内容,可以参考上文介绍,后续不再赘述。在此基础上,所述业务线程控制方法还包括:
步骤F10,若检测到所述待控制业务线程的线程换出周期超过预设换出时间阈值,则终止所述待控制业务线程;
步骤F20,显示所述待控制业务线程对应的线程执行失败信息。
在本实施例中,需要说明的是,所述线程换出周期用于表征所述待控制业务线程处于换出状态的时间,所述预设换出时间阈值可由用户根据需求自行配置,具体可以为10分钟、20分钟或30分钟等,也即,当所述待控制业务线程的线程换出周期过长时,则将该线程终止后移出所述目标业务线程池,以确保所述目标业务线程池的高可用性,所述线程执行失败信息用于表征所述待控制业务线程对应的业务程序执行失败,可在应用业务线程控制方法的终端设备的可视化界面进行显示。
作为一种示例,步骤F10至步骤F20包括:若检测到所述待控制业务线程的线程换出周期超过预设换出时间阈值,则终止所述待控制业务线程;生成所述待控制业务线程对应的线程执行失败信息,并在预设显示界面进行显示。
本申请实施例提供了一种业务线程控制方法,也即,若检测到所述待控制业务线程的线程换出周期超过预设换出时间阈值,则终止所述待控制业务线程;显示所述待控制业务线程对应的线程执行失败信息。相比于当待控制业务线程处于换出状态后不对待控制业务线程进行控制的业务线程控制方式,本申请实施例在检测到待控制业务线程的线程换出周期过长时,则终止待控制业务线程,并显示对应的线程执行失败信息,实现了保障目标业务线程池的作用灵活性的目的,进而规避了当多个待控制业务线程均处于换出状态时间过长,导致目标业务线程池无法并发执行大量任务情况的发生,所以,为提升通过系统线程池执行业务程序的局限性奠定了基础。
实施例三
本申请实施例还提供一种业务线程控制装置,参照图4,所述业务线程控制装置包括:
获取模块101,用于获取目标业务线程池对应的线程初始资源,其中,所述目标业务线程池包括资源监控线程和待控制业务线程;
监控模块102,用于若检测到所述待控制业务线程执行完成,则通过所述资源监控线程监控所述待控制业务线程,得到对应的线程实时资源;
控制模块103,用于根据所述线程初始资源和所述线程实时资源,对所述待控制业务线程进行线程控制。
可选地,所述控制模块103还用于:
根据所述线程初始资源和所述线程实时资源,确定执行所述待控制业务线程的线程消耗资源;
根据所述线程消耗资源,控制所述待控制业务线程的线程状态。
可选地,所述线程消耗资源包括线程占用CPU消耗资源和线程内存消耗资源,所述控制模块103还用于:
获取所述待控制业务线程在预设监控周期内的线程执行周期数;
根据所述待控制业务线程的线程执行周期和所述线程执行周期数,确定所述线程占用CPU消耗资源;
根据所述线程实时资源和所述线程执行周期,确定所述线程内存消耗资源。
可选地,所述业务线程控制装置还用于:
若检测到所述待控制业务线程处于执行状态,则通过所述资源监控线程监控所述待控制业务线程,得到对应的线程执行资源;
检测所述线程执行资源是否大于第一预设消耗资源阈值;
若是,则将所述待控制业务线程的线程状态由所述执行状态调整为换出状态。
可选地,所述业务线程控制装置还用于:
检测所述目标业务线程池的线程池消耗资源是否小于第二预设消耗资源阈值;
若是,则将所述待控制业务线程的线程状态由所述换出状态调整至所述执行状态。
可选地,所述业务线程控制装置还用于:
若检测到所述待控制业务线程的线程换出周期超过预设换出时间阈值,则终止所述待控制业务线程;
显示所述待控制业务线程对应的线程执行失败信息。
可选地,所述业务线程控制装置还用于:
若检测到所述目标业务线程池存在终止业务线程,则将候选业务线程添加至所述目标业务线程池,以调节所述目标业务线程池的线程池容量。
本发明提供的业务线程控制装置,采用上述实施例中的业务线程控制方法,解决了通过系统线程池的线程执行业务程序的局限性高的技术问题。与现有技术相比,本发明实施例提供的业务线程控制装置的有益效果与上述实施例提供的业务线程控制方法的有益效果相同,且该业务线程控制装置中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。
实施例四
本发明实施例提供一种电子设备,电子设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例一中的业务线程控制方法。
下面参考图5,其示出了适于用来实现本公开实施例的电子设备的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备可以包括处理装置1001(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(ROM)1002中的程序或者从存储装置1003加载到随机访问存储器(RAM)1004中的程序而执行各种适当的动作和处理。在RAM1004中,还存储有电子设备操作所需的各种程序和数据。处理装置1001、ROM1002以及RAM1004通过总线1005彼此相连。输入/输出(I/O)接口1006也连接至总线。
通常,以下系统可以连接至I/O接口1006:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置1007;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1008;包括例如磁带、硬盘等的存储装置1003;以及通信装置1009。通信装置可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种系统的电子设备,但是应理解的是,并不要求实施或具备所有示出的系统。可以替代地实施或具备更多或更少的系统。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1009从网络上被下载和安装,或者从存储装置1003被安装,或者从ROM1002被安装。在该计算机程序被处理装置1001执行时,执行本公开实施例的方法中限定的上述功能。
本发明提供的电子设备,采用上述实施例中的业务线程控制方法,解决了通过系统线程池的线程执行业务程序的局限性高的技术问题。与现有技术相比,本发明实施例提供的电子设备的有益效果与上述实施例提供的业务线程控制方法的有益效果相同,且该电子设备中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
实施例五
本实施例提供一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,计算机可读程序指令用于执行上述实施例中的业务线程控制方法。
本发明实施例提供的计算机可读存储介质例如可以是U盘,但不限于电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读存储介质可以是电子设备中所包含的;也可以是单独存在,而未装配入电子设备中。
上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被电子设备执行时,使得电子设备:获取目标业务线程池对应的线程初始资源,其中,所述目标业务线程池包括资源监控线程和待控制业务线程;若检测到所述待控制业务线程执行完成,则通过所述资源监控线程监控所述待控制业务线程,得到对应的线程实时资源;根据所述线程初始资源和所述线程实时资源,对所述待控制业务线程进行线程控制。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该单元本身的限定。
本发明提供的计算机可读存储介质,存储有用于执行上述业务线程控制方法的计算机可读程序指令,解决了通过系统线程池的线程执行业务程序的局限性高的技术问题。与现有技术相比,本发明实施例提供的计算机可读存储介质的有益效果与上述实施例提供的业务线程控制方法的有益效果相同,在此不做赘述。
实施例六
本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的业务线程控制方法的步骤。
本申请提供的计算机程序产品解决了通过系统线程池的线程执行业务程序的局限性高的技术问题。与现有技术相比,本发明实施例提供的计算机程序产品的有益效果与上述实施例提供的业务线程控制方法的有益效果相同,在此不做赘述。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利处理范围内。
Claims (8)
1.一种业务线程控制方法,其特征在于,所述业务线程控制方法包括:
获取目标业务线程池对应的线程初始资源,其中,所述目标业务线程池包括资源监控线程和待控制业务线程,所述目标业务线程池用于执行目标业务程序,所述目标业务程序与所述待控制业务线程一一对应;
若检测到所述待控制业务线程执行完成,则通过所述资源监控线程监控所述待控制业务线程,得到对应的线程实时资源,其中,所述资源监控线程用于监控所述目标业务程序通过所述目标业务线程池执行时的资源消耗情况;
根据所述线程初始资源和所述线程实时资源,确定执行所述待控制业务线程的线程消耗资源;
根据所述线程消耗资源,控制所述待控制业务线程的线程状态,其中,所述线程消耗资源包括线程占用CPU消耗资源和线程内存消耗资源,所述根据所述线程初始资源和所述线程实时资源,确定执行所述待控制业务线程的线程消耗资源的步骤包括:
获取所述待控制业务线程在预设监控周期内的线程执行周期数;
根据所述待控制业务线程的线程执行周期和所述线程执行周期数,确定所述线程占用CPU消耗资源;
2.如权利要求1所述业务线程控制方法,其特征在于,在所述若检测到所述待控制业务线程执行完成,则通过所述资源监控线程监控所述待控制业务线程,得到对应的线程实时资源的步骤之前,所述业务线程控制方法还包括:
若检测到所述待控制业务线程处于执行状态,则通过所述资源监控线程监控所述待控制业务线程,得到对应的线程执行资源;
检测所述线程执行资源是否大于第一预设消耗资源阈值;
若是,则将所述待控制业务线程的线程状态由所述执行状态调整为换出状态。
3.如权利要求2所述业务线程控制方法,其特征在于,在所述将所述待控制业务线程的线程状态由所述执行状态调整为换出状态的步骤之后,所述业务线程控制方法还包括;
检测所述目标业务线程池的线程池消耗资源是否小于第二预设消耗资源阈值;
若是,则将所述待控制业务线程的线程状态由所述换出状态调整至所述执行状态。
4.如权利要求1所述业务线程控制方法,其特征在于,所述业务线程控制方法还包括:
若检测到所述待控制业务线程的线程换出周期超过预设换出时间阈值,则终止所述待控制业务线程;
显示所述待控制业务线程对应的线程执行失败信息。
5.如权利要求1所述业务线程控制方法,其特征在于,所述业务线程控制方法还包括:
若检测到所述目标业务线程池存在终止业务线程,则将候选业务线程添加至所述目标业务线程池,以调节所述目标业务线程池的线程池容量。
6.一种业务线程控制装置,其特征在于,所述业务线程控制装置包括:
获取模块,用于获取目标业务线程池对应的线程初始资源,其中,所述目标业务线程池包括资源监控线程和待控制业务线程,所述目标业务线程池用于执行目标业务程序,所述目标业务程序与所述待控制业务线程一一对应;
监控模块,用于若检测到所述待控制业务线程执行完成,则通过所述资源监控线程监控所述待控制业务线程,得到对应的线程实时资源;
控制模块,用于根据所述线程初始资源和所述线程实时资源,对所述待控制业务线程进行线程控制,其中,所述线程消耗资源包括线程占用CPU消耗资源和线程内存消耗资源,所述根据所述线程初始资源和所述线程实时资源,确定执行所述待控制业务线程的线程消耗资源的步骤包括:
获取所述待控制业务线程在预设监控周期内的线程执行周期数;
根据所述待控制业务线程的线程执行周期和所述线程执行周期数,确定所述线程占用CPU消耗资源;
7.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至5中任一项所述的业务线程控制方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有实现业务线程控制方法的程序,所述实现业务线程控制方法的程序被处理器执行以实现如权利要求1至5中任一项所述业务线程控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211382247.5A CN115421931B (zh) | 2022-11-07 | 2022-11-07 | 业务线程控制方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211382247.5A CN115421931B (zh) | 2022-11-07 | 2022-11-07 | 业务线程控制方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115421931A CN115421931A (zh) | 2022-12-02 |
CN115421931B true CN115421931B (zh) | 2023-03-28 |
Family
ID=84207155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211382247.5A Active CN115421931B (zh) | 2022-11-07 | 2022-11-07 | 业务线程控制方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115421931B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116436919B (zh) * | 2023-06-13 | 2023-10-10 | 深圳市明源云科技有限公司 | 云资源消耗优化方法、装置、电子设备及可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019192103A1 (zh) * | 2018-04-03 | 2019-10-10 | 平安科技(深圳)有限公司 | 并发访问控制方法、装置、终端设备及介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6931641B1 (en) * | 2000-04-04 | 2005-08-16 | International Business Machines Corporation | Controller for multiple instruction thread processors |
CN101304340B (zh) * | 2007-05-09 | 2011-09-21 | 华为技术有限公司 | 一种资源状态监控方法及装置以及通信网络 |
CN103095786B (zh) * | 2011-11-08 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 在线业务请求识别方法、系统、服务器及在线服务器集群 |
CN105094945A (zh) * | 2015-07-01 | 2015-11-25 | 北京奇虎科技有限公司 | 虚拟化平台线程控制方法、设备和系统 |
CN112817758A (zh) * | 2021-01-25 | 2021-05-18 | 山东众阳健康科技集团有限公司 | 一种资源消耗动态控制方法、系统、存储介质及设备 |
-
2022
- 2022-11-07 CN CN202211382247.5A patent/CN115421931B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019192103A1 (zh) * | 2018-04-03 | 2019-10-10 | 平安科技(深圳)有限公司 | 并发访问控制方法、装置、终端设备及介质 |
Non-Patent Citations (1)
Title |
---|
对线程池模式的分析及其实现;陈勇等;《现代电子技术》;20060401(第16期);第45-48页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115421931A (zh) | 2022-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2885707B1 (en) | Latency sensitive software interrupt and thread scheduling | |
CN109408205B (zh) | 基于hadoop集群的任务调度方法和装置 | |
CN111475298A (zh) | 任务处理方法、装置、设备及存储介质 | |
CN114020470B (zh) | 资源分配方法、装置、可读介质及电子设备 | |
CN115421931B (zh) | 业务线程控制方法、装置、电子设备及可读存储介质 | |
CN110083417B (zh) | 用户界面响应方法和装置 | |
CN115080209A (zh) | 系统资源调度方法、装置、电子设备及存储介质 | |
CN111813541B (zh) | 一种任务调度方法、装置、介质和设备 | |
WO2020026010A2 (zh) | 任务执行的调控方法、装置、设备/终端/服务器及存储介质 | |
CN111367783B (zh) | 应用程序的测试方法、装置及电子设备 | |
CN109951737B (zh) | 视频处理方法、装置、电子设备和计算机可读存储介质 | |
CN115225577B (zh) | 数据处理控制方法、装置、电子设备及可读存储介质 | |
US20140372594A1 (en) | Application control of embedded web content execution | |
CN113835871A (zh) | 线程管理方法、装置、计算机存储介质和应用软件 | |
CN115480890A (zh) | 概率混合关键系统动态优先级非精确任务节能调度方法及装置 | |
CN115269048A (zh) | 应用程序的并发控制方法、电子设备和可读存储介质 | |
CN110377362B (zh) | 清理应用程序的方法、装置、终端及存储介质 | |
CN109815429B (zh) | 浏览器页面关闭处理方法和装置 | |
CN112650465A (zh) | 终端的控制方法、装置、终端和存储介质 | |
CN113127187A (zh) | 用于集群扩缩容的方法和装置 | |
CN112948127B (zh) | 云平台容器平均负载监视方法、终端设备及可读存储介质 | |
CN112148448B (zh) | 资源分配方法、装置、设备和计算机可读介质 | |
WO2023138572A1 (zh) | 用户标签检测方法、装置、电子设备及可读存储介质 | |
CN112882857B (zh) | 性能问题定位方法、装置、电子设备和存储介质 | |
CN115878296B (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 |