CN116069466A - 线程管理方法、装置、计算机设备和存储介质 - Google Patents

线程管理方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN116069466A
CN116069466A CN202211665732.3A CN202211665732A CN116069466A CN 116069466 A CN116069466 A CN 116069466A CN 202211665732 A CN202211665732 A CN 202211665732A CN 116069466 A CN116069466 A CN 116069466A
Authority
CN
China
Prior art keywords
task
thread
timeout
time
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.)
Pending
Application number
CN202211665732.3A
Other languages
English (en)
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.)
Tianjin Zhongke Shuguang Storage Technology Co ltd
Original Assignee
Tianjin Zhongke Shuguang Storage 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 Tianjin Zhongke Shuguang Storage Technology Co ltd filed Critical Tianjin Zhongke Shuguang Storage Technology Co ltd
Priority to CN202211665732.3A priority Critical patent/CN116069466A/zh
Publication of CN116069466A publication Critical patent/CN116069466A/zh
Pending legal-status Critical Current

Links

Images

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
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/481Exception handling
    • 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)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及一种线程管理方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:根据预设的任务层级数,确定当前待执行的目标任务的各任务层级;在线程执行所述目标任务的过程中,基于各所述任务层级间由大到小的嵌套关系,逐级监测每一所述任务层级对应的执行过程,确定每一所述任务层级对应的执行结果;所述任务层级对应的执行结果用于反映所述任务层级的异常处理情况;根据各所述任务层级对应的执行结果,确定所述目标任务的执行结果。采用本方法及时发现线程执行任务过程中的异常情况并对异常情况进行定位。

Description

线程管理方法、装置、计算机设备和存储介质
技术领域
本申请涉及信息技术领域,特别是涉及一种线程管理方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
进程为程序运行的载体。其中,每个进程中包含有多个线程,线程作为进程中最小的资源占用单元,可以从进程中获取自身所需的资源来保证自己的任务正常执行。
目前,每一线程在执行任务时,需要由相应任务数据的接收端来判断任务的执行是否成功,例如,当接收端一直未接收到执行该任务所得到的任务数据,则接收端基于该接收超时情况,反馈线程执行该任务异常,或者,接收端检验接收到的任务数据存在异常,则接收端基于该任务数据存在异常的情况,反馈线程执行该任务异常。
然而,目前,线程在执行任务时,完全依赖于数据接收端的反馈,来确定执行该任务是否异常,异常情况发现不及时且无法对具体异常处理阶段进行定位。
发明内容
基于此,有必要针对上述技术问题,提供一种线程管理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种线程管理方法。所述方法包括:
根据预设的任务层级数,确定当前待执行的目标任务的各任务层级;
在线程执行所述目标任务的过程中,基于各所述任务层级间由大到小的嵌套关系,逐级监测每一所述任务层级对应的执行过程,确定每一所述任务层级对应的执行结果;所述任务层级对应的执行结果用于反映所述任务层级的异常处理情况;
根据各所述任务层级对应的执行结果,确定所述目标任务的执行结果。
采用本方法,通过对任务层级的划分,以及在任务执行过程中对各任务层级进行同步监测,可以及时发现目标任务执行过程中的异常情况,而且由于在监测过程中是逐层级遍历监测,因此,还可以实现对异常处理阶段进行定位。
在其中一个实施例中,所述基于各所述任务层级间由大到小的嵌套关系,逐级监测每一所述任务层级对应的执行过程,确定每一所述任务层级对应的执行结果,包括:
在当前的监控周期内,获取当前时刻以及当前任务层级;
在所述当前任务层级的层级数小于所述预设的任务层级数的情况下,获取所述当前任务层级对应的时间属性信息;
在所述时间属性信息与所述当前任务层级对应的超时监测时间属性信息相同的情况下,根据超时时刻以及所述当前时刻,确定所述当前任务层级是否超时,得到所述当前任务层级对应的执行结果。
本实施例中,通过对线程执行任务的主动监测,无需等待接收端反馈任务的异常执行情况,及时发现异常执行过程进而,提高了线程执行任务的效率。
在其中一个实施例中,所述超时时刻包括第一超时时刻和第二超时时刻,所述根据超时时刻以及所述当前时刻,确定所述当前任务层级是否超时,得到所述当前任务层级对应的执行结果之后,所述方法还包括:
在所述执行结果为执行超时的情况下,获取所述第一超时时刻、第一超时时长和第二超时时长;所述第一超时时长小于所述第二超时时长;所述第一超时时长表征线程起始执行时刻至第一超时时刻间的时长;所述第二超时时长表征所述线程起始执行时刻至所述第二超时时刻的时长;
基于所述第一超时时长、所述第一超时时刻和所述第二超时时长,构建超时等级关系式;
根据所述超时等级关系式与所述当前时刻,确定所述当前任务层级所处的超时等级。
本实施例中,通过构建超时状态关系式,根据当前时刻与超时状态关系式间的大小关系,确定线程超时情况对应的超时等级,以针对不同超时等级对应执行超时管理策略,从而,达到对线程的保护。
在其中一个实施例中,所述根据超时时刻以及所述当前时刻,确定所述当前任务层级是否超时,得到所述当前任务层级对应的执行结果之后,所述方法还包括:
在所述执行结果为执行超时的情况下,基于所述第一超时时长以及所述第一超时时刻,确定所述线程起始执行时刻;
基于所述线程起始执行时刻以及所述当前时刻,确定线程耗时时长。
本实施例中,通过第一超时时刻可以确定线程起始执行时刻,从而得到线程耗时时长,丰富了目标任务执行过程中线程的属性信息,并且,进一步实现了对线程执行目标任务的过程的监测。
在其中一个实施例中,所述根据预设的任务层级数,确定当前待执行的目标任务的各任务层级之前,所述方法还包括:
接收多个待执行的任务,并将所述多个待执行的任务存储至任务收集队列;
在所述任务收集队列中读取预设任务处理量的数目的任务,并将所述预设任务处理量的数目的任务划归为同一任务执行轮次中的任务,依次对所述同一任务执行轮次中的任务进行处理。
本实施例中,通过维护任务收集队列,基于该线程任务处理机制,该任务收集队列可以对多个待处理的任务进行缓存,无需每次执行完一个任务,都需要重新启动线程去执行新的任务,提高了线程处理效率。
在其中一个实施例中,所述根据各所述任务层级对应的执行结果,确定所述目标任务的执行结果,包括:
在各所述任务层级对应的执行结果中,存在执行异常的执行结果时,确定所述目标任务的执行结果为执行异常。
本实施例中,基于各任务层级对应的执行结果,确定目标任务的执行结果,从而,实现对目标任务执行过程中异常处理阶段的定位。
在其中一个实施例中,所述目标任务为多个线程共同处理的任务,所述根据预设的任务层级数,确定当前待执行的目标任务的各任务层级之前,所述方法还包括:
获取目标任务对应的包含所述多个线程的线程链路信息,并将所述线程链路信息存储至本地。
本实施例中,通过预先存储线程链路信息对任务的执行流程进行追踪,保证了本线程所做任务在一个完整的线程链路上,提高了后续任务跟踪查询的效率。
在其中一个实施例中,所述根据预设的任务层级数,确定当前待执行的目标任务的各任务层级之前,所述方法还包括:
获取线程所处线程池的线程池信息以及所述线程的协程信息;所述协程信息用于辅助所述线程内的多个任务协程处理;
将所述线程池信息以及所述协程信息存储至本地。
本实施例中,预先存储协程信息,实现了本线程中协程寄存器之间的自由切换、记录上轮寄存器信息、当前寄存器上下文信息、目标寄存器上下文信息、主栈的寄存器上下文信息,且通过寄存器信息保存的栈深度来控制协程栈深,防止栈深过大。
第二方面,本申请还提供了一种线程管理装置。所述装置包括:
第一确定模块,用于根据预设的任务层级数,确定当前待执行的目标任务的各任务层级;
第二确定模块,用于在线程执行所述目标任务的过程中,基于各所述任务层级间由大到小的嵌套关系,逐级监测每一所述任务层级对应的执行过程,确定每一所述任务层级对应的执行结果;所述任务层级对应的执行结果用于反映所述任务层级的异常处理情况;
第三确定模块,用于根据各所述任务层级对应的执行结果,确定所述目标任务的执行结果。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
根据预设的任务层级数,确定当前待执行的目标任务的各任务层级;
在线程执行所述目标任务的过程中,基于各所述任务层级间由大到小的嵌套关系,逐级监测每一所述任务层级对应的执行过程,确定每一所述任务层级对应的执行结果;所述任务层级对应的执行结果用于反映所述任务层级的异常处理情况;
根据各所述任务层级对应的执行结果,确定所述目标任务的执行结果。
采用本计算机设备,通过对任务层级的划分,以及在任务执行过程中对各任务层级进行同步监测,可以及时发现目标任务执行过程中的异常情况,而且由于在监测过程中是逐层级遍历监测,因此,还可以实现对异常处理阶段进行定位。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
根据预设的任务层级数,确定当前待执行的目标任务的各任务层级;
在线程执行所述目标任务的过程中,基于各所述任务层级间由大到小的嵌套关系,逐级监测每一所述任务层级对应的执行过程,确定每一所述任务层级对应的执行结果;所述任务层级对应的执行结果用于反映所述任务层级的异常处理情况;
根据各所述任务层级对应的执行结果,确定所述目标任务的执行结果。
采用本计算机可读存储介质,通过对任务层级的划分,以及在任务执行过程中对各任务层级进行同步监测,可以及时发现目标任务执行过程中的异常情况,而且由于在监测过程中是逐层级遍历监测,因此,还可以实现对异常处理阶段进行定位。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
根据预设的任务层级数,确定当前待执行的目标任务的各任务层级;
在线程执行所述目标任务的过程中,基于各所述任务层级间由大到小的嵌套关系,逐级监测每一所述任务层级对应的执行过程,确定每一所述任务层级对应的执行结果;所述任务层级对应的执行结果用于反映所述任务层级的异常处理情况;
根据各所述任务层级对应的执行结果,确定所述目标任务的执行结果。
采用本计算机程序产品,通过对任务层级的划分,以及在任务执行过程中对各任务层级进行同步监测,可以及时发现目标任务执行过程中的异常情况,而且由于在监测过程中是逐层级遍历监测,因此,还可以实现对异常处理阶段进行定位。
上述线程管理方法、装置、计算机设备、存储介质和计算机程序产品,通过预设的任务层级数,划分待执行的目标任务的任务层级,并在线程执行该目标任务的过程中,基于各任务层级间由大到小的嵌套关系,逐级监测每一所述任务层级对应的执行过程,确定每一所述任务层级对应的执行结果,从而,根据各任务层级对应的执行结果,确定目标任务的任务执行结果。采用本方法,通过对任务层级的划分,以及在任务执行过程中的同步监测,可以及时发现目标任务执行过程中的异常情况,而且由于在监测过程中是逐层级遍历监测,因此,还可以实现对异常情况的定位。
附图说明
图1为一个实施例中线程管理方法的流程图;
图2为一个实施例中分任务层级监测的示例方法的流程示意图;
图3为一个实施例中各任务层级监测的流程示意图;
图4为一个实施例中确定超时等级方法的流程示意图;
图5为一个实施例中确定当前任务层级的超时等级的流程图;
图6为一个实施例中确定线程耗时时长步骤的流程示意图;
图7为一个实施例中确定线程的工作耗时的流程图;
图8为一个实施例中划分任务轮次进行多任务处理方法的流程图;
图9为一个实施例中任务收集队列中划分任务轮次的示意图;
图10为一个实施例中预先获取协程信息方法的流程示意图;
图11为一个实施例中协程信息模块内部存储结构图;
图12为一个实施例中线程助手内部结构示意图;
图13为一个实施例中线程管理装置的结构框图;
图14为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种线程管理方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
步骤102,根据预设的任务层级数,确定当前待执行的目标任务的各任务层级。
在实施中,在服务器中,线程作为进程中的最小的资源占用单元,可以从进程中获取自身所需的资源来保证自身任务的正常执行,并且,用户可以进行通过特定接口预先配置待执行的任务,设定任务的执行过程。具体地,为了提高线程执行任务的效率以及线程执行任务的稳定性,预先在每一线程中构建私有资源结构,该私有资源结构作为线程助手,用于预先获取进程中的部分资源以及监控线程执行状态。因此,该线程助手中可以包括线程任务模块和任务监测模块。然后,线程助手接收线程投递的待处理的目标任务,根据预设的任务层级数,确定当前待执行的目标任务的各任务层级,每一任务层级对应一个任务处理阶段。
可选的,如图2所示,每一任务层级也可以称为一个工作时间深度,若用户预先配置的任务层级数为16,表征工作时间深度划分为16层,工作时间深度越深表征的处理范围越小。例如,线程1执行任务A,任务A中包含子任务B,子任务B中包含子任务C,……,依次类推,直至任务层级数(工作时间深度)达到第16层,工作时间深度越深,所涉及的任务处理范围越小,由于各任务层级间具有嵌套关系,因此,针对每一任务层级,线程助手设置不同的监测标准,例如,不同耗时限制标准。
步骤104,在线程执行目标任务的过程中,基于各任务层级间由大到小的嵌套关系,逐级监测每一任务层级对应的执行过程,确定每一任务层级对应的执行结果。
其中,任务层级对应的执行结果用于反映任务层级的异常处理情况。
在实施中,在线程执行目标任务的过程中,线程助手对线程执行目标任务的过程进行监测,由于按照由大到小的嵌套关系进行任务层级的划分,则线程助手按照由最大处理范围的任务层级开始,直至最小处理范围的任务层级结束,逐层级监测任务的执行情况,确定每一任务层级对应的执行结果。
可选的,基于各任务层级间由大到小的嵌套关系,基于该任务层级对应的执行结果可以确定异常处理过程的位置。
步骤106中,根据各任务层级对应的执行结果,确定目标任务的执行结果。
在实施中,线程助手根据各任务层级对应的执行结果,确定目标任务的执行结果。可选的,该目标任务的执行结果不仅可以反映该目标任务的执行异常情况,而且,可以基于各任务层级的逐层级嵌套,确定出最终异常执行过程的发生位置。并且,针对目标任务的执行结果为异常执行结果,用户可以预先配置有对应的超时等级,从而,目标任务的执行结果还可以针对不同的超时等级划分为不同超时等级的异常执行结果。
上述线程管理方法中,通过预设的任务层级数,划分待执行的目标任务的任务层级,并在线程执行该目标任务的过程中,基于各任务层级间由大到小的嵌套关系,逐级监测每一任务层级对应的执行过程,确定每一任务层级对应的执行结果,从而,根据各任务层级对应的执行结果,确定目标任务的任务执行结果。采用本方法,通过对任务层级的划分,以及在任务执行过程中对各任务层级进行同步监测,可以及时发现目标任务执行过程中的异常情况,而且由于在监测过程中是逐层级遍历监测,因此,还可以实现对异常处理阶段进行定位。
在一个实施例中,如图3所示,步骤104中,基于各任务层级间由大到小的嵌套关系,逐级监测每一任务层级对应的执行过程,确定每一任务层级对应的执行结果,包括以下步骤:
步骤302,在当前的监控周期内,获取当前时刻以及当前任务层级。
在实施中,线程助手可以基于预设的监控周期,按照监控周期对线程执行目标任务的执行过程进行实时监测,例如,以100ms(毫秒)为一个监控周期,线程助手中任务监测模块对线程执行目标任务的过程进行检测,在每一监控周期内,线程助手中的任务检测模块先获取当前时刻以及正在监测的当前任务层级。
可选的,该当前时刻可以理解为当前的监控周期内监测线程的起始时刻,由于监控周期较短,且在开始监测后,获取到的时间信息与监测线程起始时刻间的时间间隔非常小,从而可以忽略不计,以该监测线程的起始时刻作为监测过程中用于判断当前任务层级执行过程是否超时的当前时刻。
步骤304,在当前任务层级的层级数小于预设的任务层级数的情况下,获取当前任务层级对应的时间属性信息。
其中,由于各嵌套的任务层级中每一任务层级对应的处理范围不同,因此每一任务层级执行任务时对应的时间属性信息是不同的,因此,在监测该任务层级的超时情况时,监测该任务层级所需的超时时间的超时时间属性信息则需要与该任务层级的时间属性信息相同,或者说对应每一任务层级,用于监测该任务层级超时情况的超时时间对应的工作监控版本与该任务层级的工作时间对应的工作时间版本相同。
在实施中,在当前任务层级的层级数小于预设的任务层级数的情况下,表征当前任务层级未达到最小处理范围的任务层级,可以继续对该任务层级进行检测。因此,线程助手先获取当前任务层级对应的时间属性信息。
步骤306,在时间属性信息与当前任务层级对应的超时监测的时间属性信息相同的情况下,根据预设的超时时刻以及当前时刻,确定当前任务层级是否超时,得到当前任务层级对应的执行结果。
在实施中,线程助手比对当前任务层级的时间属性信息与该任务层级预设的超时时间的超时时间属性信息是否相同。在时间属性信息与当前任务层级对应的超时时间的时间属性信息相同的情况下,表征可以对当前任务层级进行超时监测。具体地,目标任务在执行过程中出现任何异常,均可以通过目标任务的执行时间来反映,例如,目标任务执行过程中出现中断、死循环,传输数据有误等,最终都会导致目标任务执行时间过长,即目标任务超时,因此,将目标任务的超时情况作为目标任务的执行结果,用于反映目标任务的执行是否存在异常情况。
然后,线程助手根据超时时刻与当前时刻的大小关系,确定当前任务层级是否超时,从而,得到当前任务层级对应的执行结果。具体地,在当前时刻大于超时时刻的情况下,当前任务层级超时,在当前时刻小于等于超时时刻的情况下,当前任务层级未超时(即正常处理状态)。
可选的,线程起始执行时刻以及当前任务层级等信息可以记录在执行日志中,线程助手可以通过读取该执行日志的信息,获取该线程起始执行时刻和当前任务层级,本申请实施例对于获取线程起始执行时刻以及当前任务层级的具体技术手段不做限定。
本实施例中,通过对线程执行任务的过程进行主动监测,无需等待接收端反馈任务的异常执行情况,及时发现异常执行过程进而,提高了线程执行任务的效率。
在一个实施例中,如图4所示,超时时刻包括第一超时时刻和第二超时时刻。针对超时情况,用户可以预先配置反映超时情况的超时等级,例如,包括警告超时等级和致命超时等级,警告超时等级至致命超时等级的超时程度逐渐加重。从而,线程执行目标任务时除了正常执行状态,针对超时情况,都可以确定出当前超时情况属于处于哪一超时等级,进而,针对不同的超时等级,对应不同的超时管理策略,以达到对线程的保护。针对警告超时等级和致命超时等级,分别对应有预设超时时长,进行超时等级判断。具体地,超时时长包括第一超时时长和第二超时时长。该第一超时时长小于第二超时时长,其中,第一超时时长为警告超时等级对应的超时时长,第二超时时长为致命超时等级对应的超时时长。在步骤306之后,该方法包括:
步骤402,在执行结果为执行超时的情况下,获取第一超时时刻、第一超时时长和第二超时时长。
其中,第一超时时长小于第二超时时长。第一超时时长表征线程起始执行时刻至第一超时时刻间的时长。第二超时时长表征线程起始执行时刻至第二超时时刻的时长。
在实施中,针对执行结果为执行超时的情况,线程助手可以进一步判断具体的超时等级。因此,线程助手获取第一超时时刻、第一超时时刻和第二超时时长。
可选的,第一超时时长、第二超时时长等可以通过线程中的特定接口进行动态设置
步骤404,基于第一超时时长、第一超时时刻和第二超时时长,构建超时等级关系式。
在实施中,为了便于对超时等级进行检验,线程助手基于第一超时时长、第一超时时刻和第二超时时长,构建超时等级关系式。具体地,该超时等级关系式为:(第一超时时刻-第一超时时长)+第二超时时长。其中,第一超时时刻为警告超时等级对应的警告超时时刻,第一超时时长即警告超时时长(该警告超时时长为线程起始执行时刻到警告超时时刻的时长),第二超时时长即致命超时时长,致命超时时长为线程起始执行时刻到致命超时时刻的时长。线程助手根据该警告超时时刻与警告超时时长作差计算(警告超时时刻-第一超时时长),得到线程起始执行时刻。然后,线程助手根据线程起始执行时刻与第二超时时长进行求和计算,得到致命超时时刻。因此,该超时等级关系式可以用于确定每一任务层级对应的致命超时时刻。
步骤406,根据超时状态关系式与当前时刻,确定当前任务层级所处的超时等级。
在实施中,线程助手基于该超时等级关系式可以确定当前所处任务层级对应的致命超时时刻,然后,基于该致命超时时刻与当前时刻进行大小关系比对,从而,确定当前任务层级所处的超时等级。具体地,若当前时刻大于致命超时时刻,则可以确定当前的超时等级为致命超时等级,若当前时刻小于或者等于该致命超时时刻,则可以确定当前的超时等级为警告超时等级。
本实施例中,通过构建超时状态关系式,根据当前时刻与超时状态关系式间的大小关系,确定线程超时情况对应的超时等级,以针对不同超时等级对应执行超时管理策略,从而,达到对线程的保护。
在一个实施例中,线程的工作状态分为“正常状态、警告超时状态、致命超时状态”三种,这三种状态根据用户所赋予线程工作时间信息中的“警告超时时间和致命超时时间”为标准划分,线程任务的处理耗时小于警告超时时间为正常状态,大于警告超时时间但小于致命超时时间为警告超时状态,大于致命超时时间为致命超时状态。具体地,如图5所示,本申请实施例给出一种线程工作状态监控的处理流程,具体如下所示:
获取当前监控时间及监控深度,因为线程助手支持多层(例如,16层)嵌套深度(工作时间深度,也即任务层级)的任务监控。因此,线程助手遍历判断各个嵌套深度(即任务层级)的工作状态。具体地,在判断各个嵌套深度的工作状态之前,首先检测用于检验的工作监控版本与待监测的工作时间版本是否相同,若工作时间版本与工作监控版本不符合,代表用户在预先配置时主动取消了对于本工作时间深度的监控,则直接跳过此工作时间深度,继续处理下一工作时间深度;若工作时间版本与工作监控版本符合,则进一步检验当前工作时间深度的工作状态(即超时情况)。即基于警告超时时刻与当前时刻的大小关系,确定当前工作时间深度的工作状态。在当前时刻大于警告超时时刻时,确定当前工作时间深度为工作超时状态,针对工作超时状态对应的超时等级,执行不同的超时管理策略;在当前时刻小于等于警告超时时刻时,确定当前工作时间深度为正常状态,反馈当前工作时间深度为正常状态的消息。在确定当前工作时间深度的工作状态为工作超时状态的情况下,进一步确定超时等级,确定超时等级的内容已经在上述实施例步骤402至步骤406中进行描述,本申请实施例在此不再赘述。
可选的,针对不同超时等级的超时管理策略,在当前工作时间深度的超时等级为警告超时等级时,可以反馈警告超时消息,并记录超时栈信息。在当前工作时间深度的超时等级为致命超时等级时,直接退出该目标任务的执行,并反馈致命超时消息。
在一个实施例中,线程的结构体中不记录线程的起始执行时刻,只记录警告超时时刻,因此,在确定线程的执行结果为超时结果的情况下,无法得到线程执行目标任务对应的整体耗时时长,本申请给出一种可以确定线程耗时时长的方法,如图6所示,在步骤306之后,该方法还包括:
步骤602,在执行结果为执行超时的情况下,基于第一超时时长以及第一超时时刻,确定线程起始执行时刻。
在实施中,在执行结果为执行超时的情况下,线程助手基于第一超时时长以及第一超时时刻,确定线程起始执行时刻。具体地,线程助手基于获取到的第一超时时刻(即警告超时时刻)与第一超时时长(即警告超时时长)进行作差计算,得到线程起始执行时刻。
步骤604,基于线程起始执行时刻以及当前时刻,确定线程耗时时长。
在实施中,线程助手基于线程起始执行时刻以及当前时刻,确定线程耗时时长。具体地,线程助手对当前时刻与线程起始执行时刻进行作差计算,确定出线程耗时时长。其中,当前时刻可以为监控线程执行目标任务时获取到的监控线程的起始时刻。
如图7所示,图7为确定线程的工作耗时的流程图,本申请实施例中给出了一种确定线程耗时时长的流程过程:
当确定线程处于警告超时状态或致命超时状态后,若能确定任务执行耗时时长(精确到ms),则能更好的分析线程执行过程中存在的问题。具体地,通过线程助手中的任务监测模块,在每层监控中若发现工作时间版本与工作监控版本不符合,则代表此次监控被上层取消,为无效监控,耗时时间置0并返回;正常状态的线程不记录耗时时长,只记录触发了警告超时和致命超时线程的耗时时长。因此,在确认线程执行过程超时的情况下,若当前工作时间深度的警告超时时长不为0,则警告超时时长与线程起始执行时刻相加,若大于本工作时间深度的警告超时时刻时,表征本工作时间深度已经发生警告超时,则根据本工作时间深度的警告超时时刻和本深度的警告超时时间重新计算线程起始执行时刻,然后,进入下一工作时间深度,继续判断是否更新线程起始执行时刻,直至遍历完全部依赖工作时间深度的监控任务后,得到最终的线程起始执行时刻。最后,线程实际工作耗时为当前时刻减去最终更新的线程起始执行时刻。线程实际工作耗时为当前时刻减去监测线程起始时刻。
其中,若当前工作时间深度的警告超时时长不为0,则表示并未设置本工作时间深度的警告超时监测,则需要根据致命超时时长更新线程起始执行时刻,根据致命超时时间更新该线程起始执行时刻的方法与警告超时时长的更新方法类似,是用致命超时时刻和致命超时时长计算线程起始执行时刻。本申请实施例不过多赘述。
本实施例中,通过第一超时时刻可以确定线程起始执行时刻,从而得到线程耗时时长,丰富了目标任务执行过程中线程的属性信息,并且,进一步实现了对线程执行目标任务的过程的监测。
在一个实施例中,如图8所示,在线程助手中包括线程任务模块,该线程任务模块中维护有任务收集队列,通过该任务收集队列缓存多个待处理的任务,无需每次重新启动线程去执行新的任务,可以实现线程对多个任务的处理。具体地,在步骤102之前,该方法还包括:
步骤802,接收多个待执行的任务,并将多个待执行的任务存储至任务收集队列。
在实施中,用户将待处理的任务封装为inntsk(一种任务结构),然后,将封装好的多个任务投递给线程助手,线程助手中设置有任务收集队列,线程助手将接收到的多个任务存储至任务收集队列中,并按照接收顺序依次读取并执行。
步骤804,在任务收集队列中读取预设任务处理量的数目的任务,并将预设任务处理量的数目的任务作为同一任务执行轮次中的任务,依次对同一任务执行轮次中的任务进行处理。
在实施中,线程助手在任务收集队列中读取预设任务处理量的数目的任务,并将预设任务处理量的数目的任务作为同一任务执行轮次中的任务。然后,线程依次对同一任务执行轮次中的任务进行处理。如图9所示,图9中展示了线程助手处理任务的流程,线程助手中的线程任务模块维护了一个任务收集队列,用于收集投递到此线程的任务,会分轮次对这些任务进行处理,例如,每轮次处理8个任务,即以8个任务作为一个轮次,且线程助手处理多个任务轮次的任务时,按照串行处理的顺序进行处理。
可选的,除了执行每一任务是按照任务层级由大到小的嵌套关系进行处理之外,还存在任务与任务之间的嵌套,即在执行同一轮次中的某一任务的过程中,由于执行该任务可能会触发产生新的任务,这样就出现了任务间的嵌套情况。若任务嵌套层次过多会造成线程内栈深度太大,导致栈溢出。因此,在线程助手的线程任务模块中预先设置有嵌套层次,例如,嵌套层次为4,则在执行任务时,最多只能允许4层的任务嵌套,以防止栈嵌套溢出,在触发超出4层的任务嵌套请求后,则会输出无法触发下一层任务的消息进行提示。
本实施例中,通过线程助手中的线程任务模块,维护有任务收集队列,并且基于该线程任务处理机制,该任务收集队列可以对多个待处理的任务进行缓存,无需每次执行完一个任务,都需要重新启动线程去执行新的任务,提高了线程处理效率。
可选的,针对任务嵌套的嵌套层次的限制具体通过:在本申请中通过预设的标签标记(例如,inntsk_dealing标记,一种状态标签)来表示线程的执行状态。线程在执行任务A时,将该标签标记置位,表示当前线程正在执行该任务A,若在执行任务A的过程中,任务B开始执行,则任务B根据标签标记表征的线程执行状态,确定自身任务为属于任务A的嵌套任务,自动化增加一次线程助手中记录的嵌套执行次数,同样的,若在任务B执行过程中,任务C开始执行,将会逐步累计增加嵌套执行次数,直至嵌套执行次数大于最大值4的时候,将不执行此次嵌套任务,同时将此次嵌套任务加入线程任务收集队列等待下轮执行,规避了无限嵌套任务导致的栈嵌套溢出问题。
在一个实施例中,在步骤106中,根据各任务层级对应的执行结果,确定目标任务的执行结果,具体包括:
在各任务层级对应的执行结果中,存在执行异常的执行结果时,确定目标任务的执行结果为执行异常。
在实施中,在各任务层级对应的执行结果中,存在执行异常的执行结果时,确定该目标任务的执行结果为执行异常。具体地,由于线程在执行目标任务时,是基于目标任务对应的各任务层级由大到小的嵌套关系执行的,因此,若各任务层级对应的执行结果中存在执行异常的结果,表征存在目标任务层级执行过程异常,因此,必然导致整体目标任务的执行结果反映为执行异常。
本实施例中,基于各任务层级对应的执行结果,确定目标任务的执行结果,从而,实现对目标任务执行过程中异常处理阶段的定位。
可选的,在目标任务按照由大到小的嵌套关系依次处理各任务层级时,当存在目标任务层级对应的执行结果为执行异常时,基于各任务层级间的嵌套关系,遍历目标任务层级以下嵌套的全部任务层级,最终可以可定异常处理过程所处的层级位置。
可选的,由于一个进程中包含多个线程,每一线程中预先设置有线程助手(即一种私有资源结构),因此,在每一线程助手的任务监控模块的支持下,可以实现打印出整个进程中发生超时事件线程的详细超时信息。详细超时信息该分别记录了当前时刻、警告超时标记(用于反映超时状态)、超时线程号、每一线程对应的工作耗时时长、警告超时时刻、栈信息等等。用户根据这些详细超时信息,可以直观感知到哪一线程,在处理任务的哪一阶段出现阻塞、卡顿的问题,对代码的规范性及异常问题排查定位提高了效率。
在一个实施例中,存在一种目标任务需要由多个线程串行处理完成(即无法由一个线程独立完成),当目标任务为多个线程共同处理的任务时,线程助手中还包括链路追踪模块,在步骤102之前,该方法还包括:
获取目标任务对应的包含多个线程的线程链路信息,并将线程链路信息中包含的每一线程赋值,存储至本地。
在实施中,若在该目标任务的执行过程中,每执行完一个阶段,都要重新申请下一线程,则会降低该目标任务的执行效率。因此,通过线程助手中的链路追踪模块,预先获取该目标任务对应的包含多个线程的线程链路信息,基于自身线程号对线程链路信息中的自身线程进行赋值,保证本线程所做任务在整个线程链路上,并将该赋值后的线程链路存储至本地,以便于后续任务跟踪和查询。
本实施例中,通过线程助手中的链路追踪模块,预获取线程链路信息,并对任务的执行流程进行追踪,保证了本线程所做任务在一个完整的线程链路上,提高了后续任务跟踪查询的效率。
在一个实施例中,如图10所示,在步骤102之前,该方法还包括:
步骤1002,获取线程所处的线程池信息以及线程对应的协程信息。
其中,协程信息用于辅助线程内的多个任务协程处理。
在实施中,线程中包括多个协程寄存器,每一协程寄存器可以处理相应的任务,在每一协程寄存器处理完一个任务之后,该线程中的下一协程寄存器需要先向进程申请协程信息,然后,再通过下一协程寄存器处理下一任务。本实施例中,在未执行任务之前,线程助手预先获取线程所处的线程池信息以及该线程对应的协程信息。具体地,线程助手中还包括线程池模块以及协程信息模块,通过线程池模块预先获取线程池信息,以及通过协程信息模块预先获取协程信息。
可选的,线程池信息包括:本线程处于哪一目标线程池、目标线程池的相关属性信息等。
协程信息包括:如图11所示,线程关联的协程实例、上轮协程寄存器上下文、当前协程寄存器上下文、目标协程寄存器上下文、线程主栈寄存器上下文、寄存器信息保存栈深度、协程间并发锁等等。
步骤1004,将线程池信息以及协程信息存储至本地。
在实施中,线程助手将线程池信息以及协程信息存储至本地,例如,存储至协程信息模块对应的存储区域内,使得线程在处理多个任务时,无需每次进行协程信息的申请,可以直接查询本地的协程信息模块。
本实施例中,在线程助手的协程信息模块中预先存储协程信息,实现了本线程中协程寄存器之间的自由切换、记录上轮寄存器信息、当前寄存器上下文信息、目标寄存器上下文信息、主栈的寄存器上下文信息,且通过寄存器信息保存的栈深度来控制协程栈深,防止栈深过大。
在一个实施例中,如图12所示,图12为一个线程助手的内部架构图,在线程助手中可以但不限于包括:链路追踪模块、线程池模块、内置信号量模块、线程任务模块、协程信息模块、任务监测模块和日志模块。
其中,链路追踪模块、线程池模块内置信号量模块和日志模块等四个模块都属于线程助手(私有资源结构)中的资源性结构,用于为线程获取进程中的私有资源,存储至线程本地,避免需要时临时申请内存,提高线程运行效率。而协程信息模块、任务监测模块和线程任务模块”等三个模块属于线程助手中的逻辑性结构,用于提供辅助线程执行任务的功能,例如,监测线程执行任务的时间,避免超时等情况,提高线程运行的稳定性和安全性。
其中,内置信号量模块:预先申请信号量,即线程助手为每个线程预留了若干个信号量,线程可以直接从线程助手的内置信号量模块中直接获取预先申5请的私有信号量,无需在执行过程中多次申请信号量资源。
日志模块,用于记录日志、关键信息等。具体地,线程助手为每个线程预留了一定大小的内存空间,当线程需要使用的时候可直接获取,提高线程处理效率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按0照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然
是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执5行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者
阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的线程管理方法的线程管理装置。该装置所提供的解决问题的实现方案与上述方
法中所记载的实现方案相似,故下面所提供的一个或多个线程管理装置实施例0中的具体限定可以参见上文中对于线程管理方法的限定,在此不再赘述。
在一个实施例中,如图13所示,提供了一种线程管理装置1300,包括:第一确定模块1301、第二确定模块1302和第三确定模块1303,其中:
第一确定模块1301,用于根据预设的任务层级数,确定当前待执行的目标任务的各任务层级;
5第二确定模块1302,用于在线程执行目标任务的过程中,基于各任务层级
间由大到小的嵌套关系,逐级监测每一任务层级对应的执行过程,确定每一任务层级对应的执行结果;任务层级对应的执行结果用于反映任务层级的异常处理情况;
第三确定模块1303,用于根据各任务层级对应的执行结果,确定目标任务的执行结果。
在其中一个实施例中,第二确定模块1302,具体用于在当前的监控周期内,获取当前时刻以及当前任务层级;
在当前任务层级的层级数小于预设的任务层级数的情况下,获取当前任务层级对应的时间属性信息;
在时间属性信息与当前任务层级对应的超时监测时间属性信息相同的情况下,根据超时时刻以及当前时刻,确定当前任务层级是否超时,得到当前任务层级对应的执行结果。
在其中一个实施例中,超时时刻包括第一超时时刻和第二超时时刻,该装置1300还包括:
第一获取模块,用于在执行结果为执行超时的情况下,获取第一超时时刻、第一超时时长和第二超时时长;第一超时时长小于第二超时时长;第一超时时长表征线程起始执行时刻至第一超时时刻间的时长;第二超时时长表征线程起始执行时刻至第二超时时刻的时长;
构建模块,用于基于第一超时时长、第一超时时刻和第二超时时长,构建超时等级关系式;
第四确定模块,用于根据超时等级关系式与当前时刻,确定当前任务层级所处的超时等级。
在其中一个实施例中,该装置1300还包括:
第五确定模块,用于在执行结果为执行超时的情况下,基于第一超时时长以及第一超时时刻,确定线程起始执行时刻;
第六确定模块,用于基于线程起始执行时刻以及当前时刻,确定线程耗时时长。
在其中一个实施例中,该装置1300还包括:
接收模块,用于接收多个待执行的任务,并将多个待执行的任务存储至任务收集队列;
处理模块,用于在任务收集队列中读取预设任务处理量的数目的任务,并将预设任务处理量的数目的任务划归为同一任务执行轮次中的任务,依次对同一任务执行轮次中的任务进行处理。
在其中一个实施例中,该装置1300还包括:
第七确定模块,用于在各任务层级对应的执行结果中,存在执行异常的执行结果时,确定目标任务的执行结果为执行异常。
在其中一个实施例中,该装置1300还包括:
第二获取模块,用于获取目标任务对应的包含多个线程的线程链路信息,并将线程链路信息存储至本地。
在其中一个实施例中,该装置还包括:
第三获取模块,用于获取线程所处线程池的线程池信息以及线程的协程信息;协程信息用于辅助线程内的多个任务协程处理;
存储模块,用于将线程池信息以及协程信息存储至本地。
上述线程管理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图14所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种线程管理方法。
本领域技术人员可以理解,图14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (12)

1.一种线程管理方法,其特征在于,所述方法包括:
根据预设的任务层级数,确定当前待执行的目标任务的各任务层级;
在线程执行所述目标任务的过程中,基于各所述任务层级间由大到小的嵌套关系,逐级监测每一所述任务层级对应的执行过程,确定每一所述任务层级对应的执行结果;所述任务层级对应的执行结果用于反映所述任务层级的异常处理情况;
根据各所述任务层级对应的执行结果,确定所述目标任务的执行结果。
2.根据权利要求1所述的方法,其特征在于,所述基于各所述任务层级间由大到小的嵌套关系,逐级监测每一所述任务层级对应的执行过程,确定每一所述任务层级对应的执行结果,包括:
在当前的监控周期内,获取当前时刻以及当前任务层级;
在所述当前任务层级的层级数小于所述预设的任务层级数的情况下,获取所述当前任务层级对应的时间属性信息;
在所述时间属性信息与所述当前任务层级对应的超时监测时间属性信息相同的情况下,根据超时时刻以及所述当前时刻,确定所述当前任务层级是否超时,得到所述当前任务层级对应的执行结果。
3.根据权利要求2所述的方法,其特征在于,所述超时时刻包括第一超时时刻和第二超时时刻,所述根据超时时刻以及所述当前时刻,确定所述当前任务层级是否超时,得到所述当前任务层级对应的执行结果之后,所述方法还包括:
在所述执行结果为执行超时的情况下,获取所述第一超时时刻、第一超时时长和第二超时时长;所述第一超时时长小于所述第二超时时长;
基于所述第一超时时长、所述第一超时时刻和所述第二超时时长,构建超时等级关系式;
根据所述超时等级关系式与所述当前时刻,确定所述当前任务层级所处的超时等级。
4.根据权利要求3所述的方法,其特征在于,所述根据超时时刻以及所述当前时刻,确定所述当前任务层级是否超时,得到所述当前任务层级对应的执行结果之后,所述方法还包括:
在所述执行结果为执行超时的情况下,基于所述第一超时时长以及所述第一超时时刻,确定所述线程起始执行时刻;
基于所述线程起始执行时刻以及所述当前时刻,确定线程耗时时长。
5.根据权利要求1所述的方法,其特征在于,所述根据预设的任务层级数,确定当前待执行的目标任务的各任务层级之前,所述方法还包括:
接收多个待执行的任务,并将所述多个待执行的任务存储至任务收集队列;
在所述任务收集队列中读取预设任务处理量的数目的任务,并将所述预设任务处理量的数目的任务划归为同一任务执行轮次中的任务,依次对所述同一任务执行轮次中的任务进行处理。
6.根据权利要求1所述的方法,其特征在于,所述根据各所述任务层级对应的执行结果,确定所述目标任务的执行结果,包括:
在各所述任务层级对应的执行结果中,存在执行异常的执行结果时,确定所述目标任务的执行结果为执行异常。
7.根据权利要求1所述的方法,其特征在于,所述目标任务为多个线程共同处理的任务,所述根据预设的任务层级数,确定当前待执行的目标任务的各任务层级之前,所述方法还包括:
获取目标任务对应的包含所述多个线程的线程链路信息,并将所述线程链路信息存储至本地。
8.根据权利要求1所述的方法,其特征在于,所述根据预设的任务层级数,确定当前待执行的目标任务的各任务层级之前,所述方法还包括:
获取线程所处线程池的线程池信息以及所述线程的协程信息;所述协程信息用于辅助所述线程内的多个任务协程处理;
将所述线程池信息以及所述协程信息存储至本地。
9.一种线程管理装置,其特征在于,所述装置包括:
第一确定模块,用于根据预设的任务层级数,确定当前待执行的目标任务的各任务层级;
第二确定模块,用于在线程执行所述目标任务的过程中,基于各所述任务层级间由大到小的嵌套关系,逐级监测每一所述任务层级对应的执行过程,确定每一所述任务层级对应的执行结果;所述任务层级对应的执行结果用于反映所述任务层级的异常处理情况;
第三确定模块,用于根据各所述任务层级对应的执行结果,确定所述目标任务的执行结果。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
12.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
CN202211665732.3A 2022-12-23 2022-12-23 线程管理方法、装置、计算机设备和存储介质 Pending CN116069466A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211665732.3A CN116069466A (zh) 2022-12-23 2022-12-23 线程管理方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211665732.3A CN116069466A (zh) 2022-12-23 2022-12-23 线程管理方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN116069466A true CN116069466A (zh) 2023-05-05

Family

ID=86172572

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211665732.3A Pending CN116069466A (zh) 2022-12-23 2022-12-23 线程管理方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN116069466A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117236658A (zh) * 2023-11-14 2023-12-15 联城科技(河北)股份有限公司 一种督办系统管理方法、装置、设备及计算机存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117236658A (zh) * 2023-11-14 2023-12-15 联城科技(河北)股份有限公司 一种督办系统管理方法、装置、设备及计算机存储介质

Similar Documents

Publication Publication Date Title
CN109033123B (zh) 基于大数据的查询方法、装置、计算机设备和存储介质
CN107016480B (zh) 任务调度方法、装置及系统
CN111078733B (zh) 批量任务处理方法、装置、计算机设备和存储介质
US10733084B2 (en) Early test breakage detection using presubmit runs
CN106991002B (zh) 用于实现任务调度管理的方法及设备
CN116069466A (zh) 线程管理方法、装置、计算机设备和存储介质
CN111897493B (zh) 存储空间管理方法、装置及电子设备、存储介质
CN112948504B (zh) 数据采集方法、装置、计算机设备和存储介质
CN112527479A (zh) 任务执行方法、装置、计算机设备和存储介质
CN114677779A (zh) 车辆配置状态监测方法、装置、存储介质、计算机设备
CN110969430B (zh) 可疑用户的识别方法、装置、计算机设备和存储介质
CN110011832B (zh) 一种计划任务的配置下发方法及装置
CN113886342A (zh) 文件的格式转换方法、装置、存储介质及处理器
CN114416689A (zh) 数据迁移方法、装置、计算机设备、存储介质
CN113448758A (zh) 处理任务的方法、装置及终端设备
CN112286876A (zh) 日志文件抓取方法、设备及计算机可读存储介质
CN113177224B (zh) 基于区块链的数据密封方法、装置、设备和存储介质
CN116932779B (zh) 知识图谱的数据处理方法和装置
CN116302700A (zh) 备份系统调整方法、装置、计算机设备及其存储介质
CN116450341A (zh) 异步回调方法、装置、设备、存储介质和程序产品
CN113849291A (zh) 基于容器集群的任务处理方法、装置、设备、介质及产品
CN115421955A (zh) 异常信息确定方法、装置、计算机设备及其存储介质
CN118152079A (zh) 任务编排调度方法、装置、计算机设备、存储介质和产品
CN117473010A (zh) 分布式id生成方法、装置、终端设备及存储介质
CN114020512A (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