CN111651328A - 一种线程监控方法及装置 - Google Patents
一种线程监控方法及装置 Download PDFInfo
- Publication number
- CN111651328A CN111651328A CN202010515167.7A CN202010515167A CN111651328A CN 111651328 A CN111651328 A CN 111651328A CN 202010515167 A CN202010515167 A CN 202010515167A CN 111651328 A CN111651328 A CN 111651328A
- Authority
- CN
- China
- Prior art keywords
- thread
- target thread
- target
- information
- utilization rate
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000012544 monitoring process Methods 0.000 title claims abstract description 34
- 230000004083 survival effect Effects 0.000 claims abstract description 44
- 230000008569 process Effects 0.000 claims description 33
- 230000008859 change Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012806 monitoring device Methods 0.000 claims description 2
- 239000002699 waste material Substances 0.000 description 6
- 230000006378 damage Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供了一种线程监控方法及装置,包括:获取目标线程的线程信息;根据所述目标线程的线程信息,确定所述目标线程的运行时间以及存活时间;根据所述目标线程的运行时间以及存活时间,确定所述目标线程的使用率;根据所述目标线程的使用率,控制所述目标线程的状态。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种线程监控方法及装置。
背景技术
线程是操作系统能够进行运算调度的最小单位,进程从操作系统获得基本的内存空间,所有的线程共享着进程的内存地址空间。为提高系统的处理效率,越来越多功能需要借助多任务多线程来实现。目前,在创建线程时,一般需要预估线程的个数进行创建,但是有些线程在创建完成之后,可能无法得到充分的利用,从而导致线程资源的浪费。
发明内容
本公开实施例至少提供一种线程监控方法及装置。
第一方面,本公开实施例提供了一种线程监控方法,包括:
获取目标线程的线程信息;
根据所述目标线程的线程信息,确定所述目标线程的运行时间以及存活时间;
根据所述目标线程的运行时间以及存活时间,确定所述目标线程的使用率;
根据所述目标线程的使用率,控制所述目标线程的状态。
一种可能的实施方式中,所述根据所述目标线程的线程信息,确定所述目标线程的运行时间以及存活时间,包括:
将所述目标线程的线程信息中的用户态运行时间和内核态运行时间之和作为所述目标线程的运行时间;以及,
将当前时间与所述线程信息中的线程启动时间之差,作为所述目标线程的存活时间。
一种可能的实施方式中,所述根据所述目标线程的运行时间以及存活时间,确定所述目标线程的使用率,包括:
将所述目标线程的存活时间与所述目标线程的运行时间的比值作为所述目标线程的使用率。
一种可能的实施方式中,所述根据所述目标线程的使用率,控制所述目标线程的状态,包括:
在所述使用率低于第一预设使用率、且所述目标线程所在的线程池中包含有其他线程的情况下,将所述目标线程进行销毁。
一种可能的实施方式中,所述方法还包括:
在确定多个线程的使用率;
基于所述使用率低于第二预设使用率的线程的标识信息生成提醒信息,并将所述提醒信息以及所述多个线程的使用率发送至用户端,所述提醒信息用于指示用户对所述标识信息对应的线程进行处理;
响应于基于所述提醒信息生成的销毁指令,控制该销毁指令对应的线程进行销毁。
一种可能的实施方式中,所述方法还包括:
每隔预设时长确定当前已创建的多个线程的使用率;
针对每个线程,基于该线程对应的不同时刻的使用率,生成该线程对应的变化曲线图;
将多个线程分别对应的变化曲线图发送至用户端,以使所述用户端基于所述变化曲线图对当前已创建的多个线程进行监控。
第二方面,本公开实施例还提供一种线程监控装置,包括:
获取模块,用于获取目标线程的线程信息;
第一确定模块,用于根据所述目标线程的线程信息,确定所述目标线程的运行时间以及存活时间;
第二确定模块,用于根据所述目标线程的运行时间以及存活时间,确定所述目标线程的使用率;
控制模块,用于根据所述目标线程的使用率,控制所述目标线程的状态。
一种可能的实施方式中,所述第一确定模块,在根据所述目标线程的线程信息,确定所述目标线程的运行时间以及存活时间时,用于:
将所述目标线程的线程信息中的用户态运行时间和内核态运行时间之和作为所述目标线程的运行时间;以及,
将当前时间与所述线程信息中的线程启动时间之差,作为所述目标线程的存活时间。
一种可能的实施方式中,所述第二确定模块,在根据所述目标线程的运行时间以及存活时间,确定所述目标线程的使用率时,用于:
将所述目标线程的存活时间与所述目标线程的运行时间的比值作为所述目标线程的使用率。
一种可能的实施方式中,所述控制模块,在根据所述目标线程的使用率,控制所述目标线程的状态时,用于:
在所述使用率低于第一预设使用率、且所述目标线程所在的线程池中包含有其他线程的情况下,将所述目标线程进行销毁。
一种可能的实施方式中,所述控制模块,还用于:
在确定多个线程的使用率;
基于所述使用率低于第二预设使用率的线程的标识信息生成提醒信息,并将所述提醒信息以及所述多个线程的使用率发送至用户端,所述提醒信息用于指示用户对所述标识信息对应的线程进行处理;
响应于基于所述提醒信息生成的销毁指令,控制该销毁指令对应的线程进行销毁。
一种可能的实施方式中,所述装置还包括监控模块,用于:
每隔预设时长确定当前已创建的多个线程的使用率;
针对每个线程,基于该线程对应的不同时刻的使用率,生成该线程对应的变化曲线图;
将多个线程分别对应的变化曲线图发送至用户端,以使所述用户端基于所述变化曲线图对当前已创建的多个线程进行监控。
第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
本公开实施例提供的线程监控方法及装置,可以根据目标线程的线程信息,确定目标线程的使用率,然后根据目标线程的使用率,控制目标线程的状态,比如对于使用率较低的目标线程,可以改变该目标线程的状态,进而避免线程资源的浪费,提高资源利用率。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种线程监控方法的流程图;
图2示出了本公开实施例所提供的一种线程监控装置的架构示意图;
图3示出了本公开实施例所提供的一种计算机设备300的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
相关技术中,可以根据预估线程个数创建线程,但是线程在创建完成之后,实际的应用过程中,可能并不是每一个线程都得到充分的利用,或者有些线程在使用完之后没有得到及时的销毁,这就导致这些线程资源的浪费。
基于此,本公开实施例提供了一种线程监控方法及装置,可以根据目标线程的线程信息,确定目标线程的使用率,然后根据目标线程的使用率,控制目标线程的状态,比如对于使用率较低的目标线程,可以改变该目标线程的状态,进而避免线程资源的浪费,提高资源利用率。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种线程监控方法进行详细介绍,本公开实施例所提供的线程监控方法的执行主体一般为具有一定计算能力的电子设备,该电子设备可以是智能手机、平板电脑、智能电视、个人计算机等,在一些可能的实现方式中,该线程监控方法可以还可以通过服务器来执行。
参见图1所示,为本公开实施例提供的一种线程监控方法的流程图,所述方法包括步骤101~步骤104,其中:
步骤101、获取目标线程的线程信息。
在创建线程时,会同时为创建的线程创建线程信息,线程的线程信息用于记录线程状态,且线程的线程信息可以随着时间的变化、以及线程的使用情况实时更新,所述线程的线程信息存储在用户端本地,每一个线程都有对应的线程信息。
其中,所述线程信息中可以包括以下信息中的多种:
线程号、线程名、线程运行状态、父进程、线程组、线程状态标志字、线程软缺页异常数、子进程的软缺页异常数、硬缺页异常数、子进程的硬缺页异常数、用户态运行时长、内核态运行时长、子进程用户态运行时长、子进程内核态运行时静态优先级长、动态优先级、进程中的线程总数、线程启动时间、进程虚拟地址空间大小、实际使用的物理内存大小、进程物理空间大小、代码段的起始地址、代码段的结束地址、主线程栈的结束地址、当前用户态栈顶地址、当前用户态程序计数器地址、待处理信号的位图、阻塞信号的位图、忽略的信号的位图、可被俘获的信号的位图、内核态程序计数器地址、该线程正在运行在哪个CPU上、实时进程的相对优先级别、data段起始地址、data段结束地址、堆的起始地址、命令行参数起始地址、命令行参数结束地址、环境变量起始地址、环境变量起始结束。
当本公开实施例所提供的方法应用于服务器时,所述获取目标线程的线程信息,可以是获取与服务器建立连接的用户端中当前已创建的线程的线程信息,所述用户端可以包括智能手机、智能电视、平板电脑、个人计算机等。
步骤102、根据所述目标线程的线程信息,确定所述目标线程的运行时间以及存活时间。
具体实施中,在根据目标线程对应的线程信息,确定该目标线程的运行时间以及存活时间时,可以将线程信息中的用户态运行时间和内核态运行时间之和作为目标线程的运行时间;以及,将当前时间和线程信息中的线程启动时间之差,作为目标线程的存活时间。
用户在运行一个程序时,该程序创建的进程开始时会运行该程序本身的代码,该进程处于用户态;如果要执行文件操作、网络数据发送等操作,必须通过write、send等系统调用工具,这些系统调用工具会调用内核的代码,在调用内核代码的过程中,该进程处于内核态;内核态的进程执行完成之后,进程可以自动切换回用户态,因此,进程在运行过程中可以在用户态和内核态之间相互转化,进程在用户态运行的时间即为上述用户态运行时间,进程在内核态运行的时间即为上述内核态运行时间。
所述当前时间可以是执行本公开所提供的线程监控方法的设备上所显示的时间,也可以是服务器上的标准时间。
步骤103、根据所述目标线程的运行时间以及存活时间,确定所述目标线程的使用率。
线程在创建并启动之后,可能并不会投入使用,因此,根据线程的运行时间和线程的存活时间,可以确定线程的使用情况,即线程的使用率。
具体实施中,在根据目标线程的运行时间以及存活时间,确定目标线程的使用率时,可以将目标线程的存活时间和该目标线程的运行时间的比值作为线程的使用率。
示例性的,可以参照如下公式计算所述目标线程的使用率:
其中,T1表示目标线程的运行时间,T1=utime+stime,utime表示用户态运行时间,stime表示内核态运行时间,T2表示目标线程的存活时间,T2=now-startime,now表示当前时间,startime表示目标线程的启动时间。
步骤104、根据所述目标线程的使用率,控制所述目标线程的状态。
具体的,在根据目标线程的使用率,控制目标线程的状态时,可以先判断目标线程的使用率是否低于第一预设使用率,在目标线程的使用率低于第一预设使用率、且目标线程所在的线程池中包含有其他线程的情况下,可以将该线程与线程池中的其他线程进行合并。
线程池是一种线程的使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。线程池中维护着多个线程,等待分配可并发执行的任务,通过线程池可以避免在处理短时间任务时创建与销毁线程所耗费的时间。
所述将目标线程与线程中的其他线程进行合并,可以直接将线程池中使用率低于第一预设使用率的目标线程进行销毁。由于线程池中的线程所能实现的功能是相同的,若目标线程的使用率低于第一预设使用率,说明目标线程无法全部得到利用,实际调用的线程的个数超过了线程池中现存的可供调用的线程的个数,因此可以通过销毁使用率低于第一预设使用率的目标线程,以提高系统资源的利用率。
由于线程和业务具有强相关的关系,大部分的线程是否需要进行销毁是需要用户进行确定的,因此,在一种可能的实施方式中,在确定目标线程的使用率之后,还可以基于对应的使用率低于第二预设使用率的目标线程的标识信息生成提醒信息,然后将提醒信息以及多个线程的使用率发送至用户端,提醒信息用于提示用户对标识信息对应的线程进行处理。
当本公开所提供的方法应用于用户端时,在生成提醒信息之后,可以直接展示生成的该提醒信息;用户可以基于展示的该提醒信息中的线程的标识信息,生成销毁指令,以对需要进行销毁的进程进行销毁,用户端可以响应于该销毁指令,控制该销毁指令对应的线程进行销毁。
当本公开所提供的方法应用于服务器时,在生成提醒信息之后,可以是将提醒信息发送至用户端,该用户端可以为监控端,用户通过该用户端监控所有其他用户端线程的使用情况。
监控端在接收到目标线程的标识信息之后,可以展示接收到的目标线程的标识信息,用户可以根据展示的目标线程的标识信息,输入选择指令以选择销毁目标线程,监控端在接收到选择指令之后,可以生成对应的销毁指令,然后将生成的销毁指令发送至服务器,服务器响应于该销毁指令,可以控制该销毁指令对应的目标线程进行销毁。
在另外一种可能的实施方式中,还可以通过上述方法每隔预设时长确定当前已创建的多个线程的使用率,针对每个线程,可以基于该线程对应的不同时刻的使用率,生成该线程对应的变化曲线图,然后将多个线程分别对应的变化曲线图发送至用户端,以使用户端基于所述变化曲线对对当前已创建的多个线程进行监控。当用户通过该变化曲线检测到某一线程不符合条件时,可以对变化曲线所对应的线程进行处理,例如可以销毁该线程,或者将该线程与其他线程进行合并,由此,可以实现对于多线程的同时监控。
本公开实施例提供的线程监控方法及装置,可以根据目标线程的线程信息,确定目标线程的使用率,然后根据目标线程的使用率,控制目标线程的状态,比如对于使用率较低的目标线程,可以改变该目标线程的状态,进而避免线程资源的浪费,提高资源利用率。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与线程监控方法对应的线程监控装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述线程监控方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图2所示,为本公开实施例提供的一种线程监控装置的架构示意图,所述装置包括:获取模块201、第一确定模块202、第二确定模块203、控制模块204、监控模块205;其中,
获取模块201,用于获取目标线程的线程信息;
第一确定模块202,用于根据所述目标线程的线程信息,确定所述目标线程的运行时间以及存活时间;
第二确定模块203,用于根据所述目标线程的运行时间以及存活时间,确定所述目标线程的使用率;
控制模块204,用于根据所述目标线程的使用率,控制所述目标线程的状态。
一种可能的实施方式中,所述第一确定模块202,在根据所述目标线程的线程信息,确定所述目标线程的运行时间以及存活时间时,用于:
将所述目标线程的线程信息中的用户态运行时间和内核态运行时间之和作为所述目标线程的运行时间;以及,
将当前时间与所述线程信息中的线程启动时间之差,作为所述目标线程的存活时间。
一种可能的实施方式中,所述第二确定模块203,在根据所述目标线程的运行时间以及存活时间,确定所述目标线程的使用率时,用于:
将所述目标线程的存活时间与所述目标线程的运行时间的比值作为所述目标线程的使用率。
一种可能的实施方式中,所述控制模块204,在根据所述目标线程的使用率,控制所述目标线程的状态时,用于:
在所述使用率低于第一预设使用率、且所述目标线程所在的线程池中包含有其他线程的情况下,将所述目标线程进行销毁。
一种可能的实施方式中,所述控制模块204,还用于:
在确定多个线程的使用率;
基于所述使用率低于第二预设使用率的线程的标识信息生成提醒信息,并将所述提醒信息以及所述多个线程的使用率发送至用户端,所述提醒信息用于指示用户对所述标识信息对应的线程进行处理;
响应于基于所述提醒信息生成的销毁指令,控制该销毁指令对应的线程进行销毁。
一种可能的实施方式中,所述装置还包括监控模块205,用于:
每隔预设时长确定当前已创建的多个线程的使用率;
针对每个线程,基于该线程对应的不同时刻的使用率,生成该线程对应的变化曲线图;
将多个线程分别对应的变化曲线图发送至用户端,以使所述用户端基于所述变化曲线图对当前已创建的多个线程进行监控。
本公开实施例提供的线程监控装置,可以根据目标线程的线程信息,确定目标线程的使用率,然后根据目标线程的使用率,控制目标线程的状态,比如对于使用率较低的目标线程,可以改变所述目标线程的状态,进而避免线程资源的浪费,提高资源利用率。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本申请实施例还提供了一种计算机设备。参照图3所示,为本申请实施例提供的计算机设备300的结构示意图,包括处理器301、存储器302、和总线303。其中,存储器302用于存储执行指令,包括内存3021和外部存储器3022;这里的内存3021也称内存储器,用于暂时存放处理器301中的运算数据,以及与硬盘等外部存储器3022交换的数据,处理器301通过内存3021与外部存储器3022进行数据交换,当计算机设备300运行时,处理器301与存储器302之间通过总线303通信,使得处理器301在执行以下指令:
获取目标线程的线程信息;
根据所述目标线程的线程信息,确定所述目标线程的运行时间以及存活时间;
根据所述目标线程的运行时间以及存活时间,确定所述目标线程的使用率;
根据所述目标线程的使用率,控制所述目标线程的状态。
一种可能的实施方式中,处理器301执行的指令中,所述根据所述目标线程的线程信息,确定所述目标线程的运行时间以及存活时间,包括:
将所述目标线程的线程信息中的用户态运行时间和内核态运行时间之和作为所述目标线程的运行时间;以及,
将当前时间与所述线程信息中的线程启动时间之差,作为所述目标线程的存活时间。
一种可能的实施方式中,处理器301执行的指令中,所述根据所述目标线程的运行时间以及存活时间,确定所述目标线程的使用率,包括:
将所述目标线程的存活时间与所述目标线程的运行时间的比值作为所述目标线程的使用率。
一种可能的实施方式中,处理器301执行的指令中,所述根据所述目标线程的使用率,控制所述目标线程的状态,包括:
在所述使用率低于第一预设使用率、且所述目标线程所在的线程池中包含有其他线程的情况下,将所述目标线程进行销毁。
一种可能的实施方式中,处理器301执行的指令中,所述方法还包括:
在确定多个线程的使用率;
基于所述使用率低于第二预设使用率的线程的标识信息生成提醒信息,并将所述提醒信息以及所述多个线程的使用率发送至用户端,所述提醒信息用于指示用户对所述标识信息对应的线程进行处理;
响应于基于所述提醒信息生成的销毁指令,控制该销毁指令对应的线程进行销毁。
一种可能的实施方式中,处理器301执行的指令中,所述方法还包括:
每隔预设时长确定当前已创建的多个线程的使用率;
针对每个线程,基于该线程对应的不同时刻的使用率,生成该线程对应的变化曲线图;
将多个线程分别对应的变化曲线图发送至用户端,以使所述用户端基于所述变化曲线图对当前已创建的多个线程进行监控。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的线程监控方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的线程监控方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的线程监控方法的步骤,具体可参见上述方法实施例,在此不再赘述。
本公开实施例还提供一种计算机程序,该计算机程序被处理器执行时实现前述实施例的任意一种方法。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种线程监控方法,其特征在于,包括:
获取目标线程的线程信息;
根据所述目标线程的线程信息,确定所述目标线程的运行时间以及存活时间;
根据所述目标线程的运行时间以及存活时间,确定所述目标线程的使用率;
根据所述目标线程的使用率,控制所述目标线程的状态。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标线程的线程信息,确定所述目标线程的运行时间以及存活时间,包括:
将所述目标线程的线程信息中的用户态运行时间和内核态运行时间之和作为所述目标线程的运行时间;以及,
将当前时间与所述线程信息中的线程启动时间之差,作为所述目标线程的存活时间。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标线程的运行时间以及存活时间,确定所述目标线程的使用率,包括:
将所述目标线程的存活时间与所述目标线程的运行时间的比值作为所述目标线程的使用率。
4.根据权利要求1所述的方法,其特征在于,所述根据所述目标线程的使用率,控制所述目标线程的状态,包括:
在所述使用率低于第一预设使用率且所述目标线程所在的线程池中包含有其他线程的情况下,将所述目标线程进行销毁。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在确定多个线程的使用率;
基于所述使用率低于第二预设使用率的线程的标识信息生成提醒信息,并将所述提醒信息以及所述多个线程的使用率发送至用户端,所述提醒信息用于指示用户对所述标识信息对应的线程进行处理;
响应于基于所述提醒信息生成的销毁指令,控制所述销毁指令对应的线程进行销毁。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
每隔预设时长确定当前已创建的多个线程的使用率;
针对每个线程,基于该线程对应的不同时刻的使用率,生成该线程对应的变化曲线图;
将多个线程分别对应的变化曲线图发送至用户端,以使所述用户端基于所述变化曲线图对当前已创建的多个线程进行监控。
7.一种线程监控装置,其特征在于,包括:
获取模块,用于获取目标线程的线程信息;
第一确定模块,用于根据所述目标线程的线程信息,确定所述目标线程的运行时间以及存活时间;
第二确定模块,用于根据所述目标线程的运行时间以及存活时间,确定所述目标线程的使用率;
控制模块,用于根据所述目标线程的使用率,控制所述目标线程的状态。
8.根据权利要求7所述的装置,其特征在于,所述第一确定模块,在根据所述目标线程的线程信息,确定所述目标线程的运行时间以及存活时间时,用于:
将所述目标线程的线程信息中的用户态运行时间和内核态运行时间之和作为所述目标线程的运行时间;以及,
将当前时间与所述线程信息中的线程启动时间之差,作为所述目标线程的存活时间。
9.一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至6任一所述的线程监控方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至6任意一项所述的线程监控方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010515167.7A CN111651328A (zh) | 2020-06-08 | 2020-06-08 | 一种线程监控方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010515167.7A CN111651328A (zh) | 2020-06-08 | 2020-06-08 | 一种线程监控方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111651328A true CN111651328A (zh) | 2020-09-11 |
Family
ID=72352852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010515167.7A Pending CN111651328A (zh) | 2020-06-08 | 2020-06-08 | 一种线程监控方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111651328A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080104610A1 (en) * | 2006-10-30 | 2008-05-01 | Norton Scott J | Hardware threads processor core utilization |
CN103428272A (zh) * | 2013-07-16 | 2013-12-04 | 无限极(中国)有限公司 | 一种中间件线程的监控调度系统及方法 |
CN107463439A (zh) * | 2017-08-21 | 2017-12-12 | 山东浪潮通软信息科技有限公司 | 一种线程池实现方法及装置 |
CN108763046A (zh) * | 2018-06-01 | 2018-11-06 | 中国平安人寿保险股份有限公司 | 线程运行监控方法、装置、计算机设备和存储介质 |
CN108874550A (zh) * | 2018-07-18 | 2018-11-23 | 郑州云海信息技术有限公司 | 一种调整线程池的方法、装置、存储介质和计算机设备 |
CN109815007A (zh) * | 2018-12-15 | 2019-05-28 | 平安科技(深圳)有限公司 | 基于云监控的线程控制方法、装置、电子设备及存储介质 |
CN110673928A (zh) * | 2019-09-29 | 2020-01-10 | 天津卓朗科技发展有限公司 | 线程绑定方法、装置、存储介质及服务器 |
-
2020
- 2020-06-08 CN CN202010515167.7A patent/CN111651328A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080104610A1 (en) * | 2006-10-30 | 2008-05-01 | Norton Scott J | Hardware threads processor core utilization |
CN103428272A (zh) * | 2013-07-16 | 2013-12-04 | 无限极(中国)有限公司 | 一种中间件线程的监控调度系统及方法 |
CN107463439A (zh) * | 2017-08-21 | 2017-12-12 | 山东浪潮通软信息科技有限公司 | 一种线程池实现方法及装置 |
CN108763046A (zh) * | 2018-06-01 | 2018-11-06 | 中国平安人寿保险股份有限公司 | 线程运行监控方法、装置、计算机设备和存储介质 |
CN108874550A (zh) * | 2018-07-18 | 2018-11-23 | 郑州云海信息技术有限公司 | 一种调整线程池的方法、装置、存储介质和计算机设备 |
CN109815007A (zh) * | 2018-12-15 | 2019-05-28 | 平安科技(深圳)有限公司 | 基于云监控的线程控制方法、装置、电子设备及存储介质 |
CN110673928A (zh) * | 2019-09-29 | 2020-01-10 | 天津卓朗科技发展有限公司 | 线程绑定方法、装置、存储介质及服务器 |
Non-Patent Citations (1)
Title |
---|
王雷: "TCP/IP网络编程基础教程", 北京理工大学出版社, pages: 231 - 235 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9558016B2 (en) | Platform system, method for changing support hardware configuration of universal extensible firmware interface basic input output system and computer program product | |
CN112035238A (zh) | 任务调度处理方法、装置、集群系统及可读存储介质 | |
CN108228344B (zh) | 多进程内存处理方法及装置、计算机装置及可读存储介质 | |
CN110968415B (zh) | 多核处理器的调度方法、装置及终端 | |
CN111026493B (zh) | 界面渲染的处理方法和装置 | |
CN112604289B (zh) | 游戏地图生成方法、装置、设备和存储介质 | |
CN111124668A (zh) | 内存释放方法、装置、存储介质及终端 | |
WO2023197866A1 (zh) | 应用程序的启动优化方法、装置、计算机设备及存储介质 | |
CN114637536A (zh) | 任务处理方法、计算协处理器、芯片及计算机设备 | |
CN110990132A (zh) | 异步任务处理方法、装置、计算机设备和存储介质 | |
CN111444117B (zh) | 存储空间碎片化实现方法、装置、存储介质及电子设备 | |
CN103019813B (zh) | 获取基于SaaS的交互式程序的交互强度的方法 | |
CN113835835B (zh) | 一种创建一致性组的方法、装置、及计算机可读存储介质 | |
CN111651328A (zh) | 一种线程监控方法及装置 | |
CN110597585A (zh) | 应用程序页面展示方法、装置、计算机设备及存储介质 | |
CN112130977B (zh) | 一种任务调度方法、装置、设备及介质 | |
CN114443181A (zh) | 一种业务处理方法、应用生成方法、服务器、装置及设备 | |
CN112860235A (zh) | 处理文本的方法、装置、设备和存储介质 | |
CN112000462A (zh) | 一种基于共享外设资源的数据处理方法及装置 | |
CN109561146A (zh) | 文件下载方法、装置、终端设备 | |
Kushsairy et al. | Embedded vision: Enhancing embedded platform for face detection system | |
CN110825477A (zh) | 图形界面的加载方法、装置、设备及存储介质 | |
US9032425B1 (en) | System and method to boost application performance by using a proxy for executing synchronous application programming interface calls | |
CN113032154B (zh) | 一种虚拟cpu的调度方法、装置、电子设备及存储介质 | |
JP2019518255A (ja) | ネットワークアクティビティインジケーターのプレゼンテーション方法、電子装置、コンピュータ読取可能な記憶媒体及びシステム |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200911 |