CN112673354B - 一种系统状态检测方法、系统状态装置及终端设备 - Google Patents

一种系统状态检测方法、系统状态装置及终端设备 Download PDF

Info

Publication number
CN112673354B
CN112673354B CN201880097460.7A CN201880097460A CN112673354B CN 112673354 B CN112673354 B CN 112673354B CN 201880097460 A CN201880097460 A CN 201880097460A CN 112673354 B CN112673354 B CN 112673354B
Authority
CN
China
Prior art keywords
thread
state
sub
inputreader
blocking
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
CN201880097460.7A
Other languages
English (en)
Other versions
CN112673354A (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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Shenzhen Huantai Technology Co Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Shenzhen Huantai 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 Guangdong Oppo Mobile Telecommunications Corp Ltd, Shenzhen Huantai Technology Co Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Publication of CN112673354A publication Critical patent/CN112673354A/zh
Application granted granted Critical
Publication of CN112673354B publication Critical patent/CN112673354B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供了一种系统状态检测方法、系统状态检测装置及终端设备,所述方法包括:通过系统进程之外的预设进程执行:检测所述系统进程下的主线程和/或所述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态;若所述主线程和/或所述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态;其中,所述预设进程不经过虚拟机解释。本申请可以在当终端设备中虚拟机代码的运行状态处于阻塞状态时,依然能够检测出终端设备的系统状态是否为卡死状态。

Description

一种系统状态检测方法、系统状态装置及终端设备
技术领域
本申请属于电子技术领域,尤其涉及一种系统状态检测方法、系统状态检测装置、终端设备及计算机可读存储介质。
背景技术
目前,对于多数终端设备(比如安卓系统的手机、平板电脑等),系统状态均是由系统进程下的看门狗watchdog子线程检测的,而watchdog子线程是基于终端设备中的虚拟机运行的,如果虚拟机代码的运行状态处于阻塞状态,会导致watchdog子线程无法使用。
发明内容
本申请提供了一种系统状态检测方法、系统状态检测装置、终端设备及计算机可读存储介质,可以在当终端设备中虚拟机代码的运行状态处于阻塞状态时,能够检测出终端设备的系统状态是否为卡死状态。
本申请第一方面提供了一种系统状态检测方法,包括:
通过系统进程之外的预设进程,执行:
检测上述系统进程下的主线程和/或上述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态;
若上述主线程和/或上述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态;
其中,上述预设进程不经过虚拟机解释。
本申请第二方面提供了一种系统状态检测装置,包括:
线程状态检测模块,用于通过系统进程之外的预设进程,检测上述系统进程下的主线程和/或上述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态,其中,上述预设进程不经过虚拟机解释;
系统状态确定模块,用于通过上述预设进程,执行若上述主线程和/或上述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态。
本申请第三方面提供了一种终端设备,包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上述第一方面方法的步骤。
本申请第四方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上述第一方面方法的步骤。
本申请第五方面提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,上述计算机程序被一个或多个处理器执行时实现如上述第一方面方法的步骤。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一提供的一种系统状态检测方法的实现流程示意图;
图2是本申请实施例一提供的另一种系统状态检测方法的实现流程示意图;
图3是本申请实施例二提供的再一种系统状态检测方法的实现流程示意图;
图4是本申请实施例二提供的步骤S301的一种实现方法的流程示意图;
图5是本申请实施例二提供的一种系统状态检测方法的执行过程示意图;
图6是本申请实施例三提供的一种系统状态检测装置的结构示意图;
图7是本申请实施例四提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
本申请实施例提供的系统状态检测方法适用于终端设备,示例性地,该终端设备包括但不限于:智能手机、掌上电脑、桌上型计算机、云端服务器、笔记本等。
为了说明本申请上述的技术方案,下面通过具体实施例来进行说明。
实施例1
下面对本申请实施例一提供的一种系统状态检测方法进行描述,该系统状态检测方法是由一系统进程之外的预设进程执行的,其中,该预设进程不经过虚拟机解释。对于安卓操作系统的终端设备来说,基于Java语言开发的应用程序在运行时必须要经过虚拟机的解释,因此,对于安卓操作系统的终端设备来说,上述预设进程对应的代码可以基于C语言、C++或者脚本等开发,以使得该预设进程不需要经过虚拟机的解释,可以直接被翻译成机器码。
请参阅附图1,本申请实施例一中的系统状态检测方法包括:
在步骤S101中,检测上述系统进程下的主线程和/或上述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态;
对于许多终端设备来说,系统进程下的主线程主要负责消息处理,系统进程下的输入获取inputreader子线程主要负责响应用户指令,若主线程或者inputreader子线程的线程状态处于阻塞状态,那么终端设备的系统将处于卡死状态,即当用户点击屏幕或者按压按键时,终端设备无反应。因此,本申请实施例可以通过系统进程下的主线程和/或inputreader子线程的线程状态,来判断系统是否处于卡死状态。
然而有时,当系统进程下的主线程和/或inputreader子线程的线程状态为阻塞状态时,终端设备的虚拟机代码的运行状态并非为阻塞状态,虚拟机代码依然能够正常运行,所以系统进程下的watchdog子线程也可以正常检测系统状态,因此,在这种情况下,我们并不需要通过系统进程之外的预设进程来检测系统状态,所以,本申请实施例所提供的技术方案中,可以适当的增加一些判断系统状态是否为卡死状态的条件,以保证是在虚拟机代码运行状态为阻塞状态时才通过该预设进程获取到系统状态。比如,除了检测主线程和/或inputreader子线程的线程状态,还可以检测watchdog子线程的线程状态是否为阻塞状态;或者,当检测到主线程和/或inputreader子线程的线程状态长时间为阻塞状态时,才认为系统为卡死状态,等等。具体详见本实施例的后续描述。
在本申请实施例中,该步骤S101包括三种并列的情况:即上述预设进程可以仅仅检测系统进程下的主线程的线程状态是否处于阻塞状态;或者,可以仅仅检测系统进程下的inputreader子线程的线程状态是否处于阻塞状态;或者,可以检测系统进程下的主线程的线程状态是否为阻塞状态并且检测系统进程下的inputreader子线程的线程状态是否为阻塞状态。为了尽可能保证是在虚拟机代码运行状态为阻塞状态时才通过该预设进程获取到系统状态,该步骤S101可以为:预设进程检测主线程以及inputreader子线程的线程状态是否均为阻塞状态。
在本申请实施例中,该步骤S101可以具体为:上述预设进程检测某一时刻时,上述主线程和/或上述inputreader子线程的线程状态是否为阻塞状态,比如,上述预设进程检测当前时刻上述主线程是否处于阻塞状态,且/或(本领域技术人员应该知晓,本申请所述的“且/或”与“和/或”是相同意思的不同表达)检测当前时刻上述inputreader子线程的线程状态是否为阻塞状态;或者,该步骤S101可以具体为:上述预设进程检测某一时间段内(比如9:00-9:02),上述主线程和/或上述inputreader子线程的线程状态是否一直为阻塞状态,比如,如图2中步骤S201所示,上述预设进程检测主线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,和/或,检测在inputreader子线程当前时刻以及当前时刻之后的预设时长内,线程状态是否一直为阻塞状态,本领域技术人员应该知晓,附图1所示的系统状态检测方法是包括附图2所示的系统状态检测方法的。
在步骤S102中,若上述主线程和/或上述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态;
在本申请实施例中,若上述步骤S101的检测结果是肯定的,则确定系统处于卡死状态。如图2所示,若步骤S201的检测结果是肯定的,即若上述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,和/或,上述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,则确定系统处于卡死状态。
此外,为了尽可能保证是在虚拟机代码运行状态为阻塞状态时才通过该预设进程获取到系统状态,该步骤S102可以在检测到上述主线程和/或上述inputreader子线程的线程状态为阻塞状态时,进一步检测系统进程下的watchdog子线程的线程状态是否阻塞状态,若是,则确定系统为卡死状态。
在本申请实施例中,附图1以及附图2所示的系统状态检测方法,均分别包括三个并列的技术方案,比如,附图2所示的系统状态检测方法,包括以下三个并列的技术方案,分别为技术方案A、技术方案B以及技术方案C。
其中,技术方案A为:检测主线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态;若上述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,则确定系统处于卡死状态。
技术方案B为:检测inputreader子线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态;若上述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,则确定系统处于卡死状态。
技术方案C为:检测主线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,并且,检测inputreader子线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态;若上述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,并且,上述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,则确定系统处于卡死状态(当然,本领域技术人员应当知晓,为了尽可能保证是在虚拟机代码运行状态为阻塞状态时才通过该预设进程获取到系统状态,本申请实施例一的技术方案可以为该技术方案C)。
在本申请实施例一中,如果系统进程下的主线程和inputreader子线程中,只有一个线程的线程状态为阻塞状态,那么在这种情况下,虚拟机代码通常是能够正常运行的,因此,系统进程下的watchdog子线程也是可以正常工作的,所以,当主线程和inputreader子线程中,如果只有一个线程的线程状态为阻塞状态时,终端设备是可以通过watchdog子线程来获取到系统状态是否为卡死状态,完全没有必要再通过上述预设进程来检测系统状态是否为卡死状态,因此,在本申请实施例中,为了节约终端设备的系统功耗,减轻处理器的工作负担,上述预设进程可以在同时检测到主线程和inputreader子线程的线程状态均为阻塞状态时,才确定系统为卡死状态;或者可以,同时检测到主线程、inputreader子线程以及watchdog子线程的线程状态均为阻塞状态时,才确定系统为卡死状态;或者也可以,同时检测到主线程和inputreader子线程的线程状态在某一时间段内均为阻塞状态时,才确定系统为卡死状态;或者还可以,同时检测到主线程、inputreader子线程以及watchdog子线程的线程状态在某一时间段内均为阻塞状态时,才确定系统为卡死状态,等等。
此外,在本申请实施例中,当确定系统为卡死状态后,可以通过上述预设进程执行:发出提示信息,以提示用户系统为卡死状态;或者,可以通过上述预设进程直接执行重启操作。
本申请实施例一所提供的技术方案中,检测主线程和/或inputreader子线程的线程状态是否处于阻塞状态的操作,以及,当主线程和/或inputreader子线程的线程状态处于阻塞状态时,确定系统处于卡死状态的操作均是由预设进程执行的,由于该预设进程不经过虚拟机解释,因此,当终端设备中虚拟机代码的运行状态处于阻塞状态时,该预设进程依然可以被终端设备所执行,因此,该终端设备就可以通过该预设进程获取到系统是否处于卡死状态。因此,解决了现有技术中当虚拟机代码的运行状态处于阻塞状态时,无法确定系统状态是否为卡死状态的技术问题。
实施例2
请参下面对本申请实施例二提供的另一种系统状态检测方法进行描述,同实施例一相同,本申请实施例二中的系统状态检测方法也是由一系统进程之外的预设进程执行的,其中,该预设进程在执行时不经过虚拟机解释。对于安卓操作系统的终端设备来说,该预设进程对应的代码可以基于C语言、C++或者脚本等开发,以使得该预设进程不需要经过虚拟机的解释,可以直接被翻译成机器码。请参阅附图3,本申请实施例二中的系统状态检测方法包括:
在步骤S301中,检测主线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,和(本领域技术人员应该知晓,本申请所述的“和”、“且”以及“并且”是相同意思的不同表达),检测inputreader子线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态;
在本申请实施例中,该步骤S301可以通过以下步骤执行:
首先,检测上述主线程在当前时刻的线程状态是否为阻塞状态,并且,检测上述inputreader子线程的线程状态是否为阻塞状态;
其次,若检测到上述主线程以及上述inputreader子线程的线程状态均为阻塞状态,则在当前时刻之后的预设时长内,每间隔一子时长,就检测一次主线程以及inputreader子线程的线程状态,其中,该子时长小于上述预设时长,该子时长可以为预先设置的固定数值,也可以为一随机数值,本申请对此不作限定;
然后,判断在当前时刻之后的预设时长内,所检测的主线程的线程状态是否均为阻塞状态,并且,判断在当前时刻之后的预设时长内,所检测的inputreader子线程的线程状态是否均为阻塞状态;
最后,若在当前时刻之后的预设时长内,所检测的主线程的线程状态均为阻塞状态,并且,在当前时刻之后的预设时长内,所检测的inputreader子线程的线程状态均为阻塞状态,则确定上述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,和,上述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态。
此外,该步骤S301也可以通过附图4所示的步骤S401-S404执行:
在步骤S401中,检测上述主线程在当前时刻的线程状态是否为阻塞状态,并且,检测上述inputreader子线程的线程状态是否为阻塞状态;
在步骤S402中,若检测到上述主线程以及上述inputreader子线程的线程状态均为阻塞状态,则在当前时刻之后的预设时长内,连续检测主线程的线程状态预设次数,并且连续检测inputreader子线程的线程状态预设次数;
在步骤S403中,判断连续检测的主线程的线程状态是否均为阻塞状态,并且,判断连续检测的inputreader子线程的线程状态是否均为阻塞状态;
在步骤S404中,若连续检测的主线程的线程状态均为阻塞状态,并且,连续检测的inputreader子线程的线程状态均为阻塞状态,则确定上述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,和,上述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态。
此外,在上述步骤S401之后,若检测到上述主线程在当前时刻的线程状态不为阻塞状态,或者,检测到上述inputreader子线程在当前时刻的线程状态不为阻塞状态,则可以在距离当前时刻预设时间间隔时,返回执行步骤S401。
此外,在上述步骤S403之后,若连续检测的上述主线程的线程状态不均为阻塞状态,或者,连续检测的上述inputreader子线程的线程状态不均为阻塞状态,则在距离当前时刻预设时间间隔时,返回执行步骤S401。
在步骤S302中,若上述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,和,上述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,则确定系统处于卡死状态。
若上述步骤S301的检测结果是肯定的,则确定系统处于卡死状态。并且上述预设进程若确定系统处于卡死状态之后,可以执行重启操作,重启终端设备,对系统进行修复。
为了更清楚的描述本申请实施例二附图4所示的技术方案,下面利用附图5进行说明。
如图5所示,在T0时刻,预设进程执行步骤S401,检测主线程以及inputreader子线程在T0时刻的线程状态是否均为阻塞状态,假设在T0时刻,主线程以及inputreader子线程的线程状态不均为阻塞状态,则间隔一预设时间间隔(比如60秒),即T1时刻,再次执行步骤S401;
假设在T1时刻,主线程以及inputreader子线程的线程状态依然不均为阻塞状态,则再次间隔一预设时间间隔,即T2时刻,再次执行步骤S401;
假设在T2时刻,该预设进程检测到主线程以及inputreader子线程的线程状态均为阻塞状态,则会在T2时刻之后的预设时长内,连续检测主线程的线程状态预设次数,同时也会检测inputreader子线程的线程状态预设次数,假设在T3时刻,检测完成主线程的线程状态预设次数,并且检测完成inputreader子线程的线程状态预设次数,则会执行步骤S403,即该预设进程会进一步判断连续检测的主线程的各个线程状态是否均为阻塞状态,以及,连续检测的inputreader子线程的各个线程状态是否均为阻塞状态;
假设在T3时刻,判断出连续检测的主线程的各个线程状态不均为阻塞状态,或者连续检测的inputreader子线程的各个线程状态不均为阻塞状态,则会再次间隔一预设时间间隔,即在T4时刻,再次执行步骤S401;
假设在T4时刻,该预设进程检测到主线程以及inputreader子线程的线程状态均为阻塞状态,则会在T4时刻之后的预设时长内,连续检测主线程的线程状态预设次数,同时也会检测inputreader子线程的线程状态预设次数,假设在T5时刻,检测完成主线程的线程状态预设次数,并且检测完成inputreader子线程的线程状态预设次数,则会执行步骤S403,即该预设进程会进一步判断连续检测的主线程的各个线程状态是否均为阻塞状态,以及,连续检测的inputreader子线程的各个线程状态是否均为阻塞状态;
假设在T5时刻,判断出连续检测的主线程的各个线程状态均为阻塞状态,并且,连续检测的inputreader子线程的各个线程状态均为阻塞状态,则执行步骤S302,以使得该预设进程确定系统当前处于卡死状态,并且该预设进程可执行一重启操作以修复系统。
另外,本申请实施例二还给出了一种判断线程的线程状态的方法,即可以设置线程在运行时对应有一堆栈,该堆栈保存有该线程当前正在运行的函数,若查找到该堆栈中保存的函数为等待函数(比如,对于安卓系统来说,等待函数可以为futexwait函数),来确定该线程是否为阻塞状态。具体地,为了确定主线程以及inputreader子线程是否处于阻塞状态,可以设置该主线程在运行时对应有第一堆栈,该第一堆栈用于保存该主线程正在运行的函数,并且设置该inputreader子线程在运行时对应有第二堆栈,该第二堆栈用于保存该inputreader子线程正在运行的函数;相应地,步骤S401可以包括:
在当前时刻,检测上述第一堆栈中保存的主线程正在运行的函数是否为等待函数,并且,在当前时刻,检测上述第二堆栈中保存的inputreader子线程正在运行的函数是否为等待函数;
若上述第一堆栈中保存的主线程正在运行的函数为等待函数,并且,上述第二堆栈中保存的inputreader子线程正在运行的函数为等待函数,则确定主线程在当前时刻的线程状态为阻塞状态,且inputreader子线程在当前时刻的线程状态也为阻塞状态。
本申请实施例二所提供的技术方案相比于实施例一来说,限定了预设进程在检测到主线程在一段时间段内的线程状态一直为阻塞状态,且检测到inputreader子线程的线程状态在一段时间段内也一直为阻塞状态时,才会确定系统处于卡死状态。这是由于当主线程以及inputreader子线程只有一个的线程状态为阻塞状态,或者当主线程以及inputreader子线程的线程状态只在短时间内未阻塞状态时,通常情况下,系统进程下的watchdog子线程是可以正常工作的,该watchdog子线程是能够检测到系统是否为卡死状态的,因此,为了节约终端设备的系统功耗,减轻处理器的工作负担,本申请实施例二限定了上述预设进程只有在检测到主线程在一段时间段内的线程状态一直为阻塞状态,且检测到inputreader子线程的线程状态在一段时间段内也一直为阻塞状态时,才会确定系统处于卡死状态。此外,本申请实施例二同实施例一相同,能够解决现有技术中当虚拟机代码的运行状态处于阻塞状态时,无法确定系统状态是否为卡死状态的技术问题。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
实施例3
本申请实施例三提供了一种系统状态检测装置,该系统状态检测装置500包括:
线程状态检测模块501,用于通过系统进程之外的预设进程,检测上述系统进程下的主线程和/或上述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态,其中,上述预设进程不经过虚拟机解释;
系统状态确定模块502,用于通过上述预设进程,执行若上述主线程和/或上述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态。
可选地,上述线程状态检测模块501具体用于:
通过系统进程之外的预设进程,检测上述主线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,和/或,检测上述inputreader子线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,其中,上述预设进程不经过虚拟机解释;
相应地,上述系统状态确定模块502具体用于:
通过上述预设进程,执行若上述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,和/或,上述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,则确定系统处于卡死状态。
可选地,上述线程状态检测模块501包括:
当前状态检测单元,用于检测上述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测上述inputreader子线程在当前时刻的线程状态是否为阻塞状态;
状态连续检测单元,用于若上述主线程在当前时刻的线程状态为阻塞状态,和/或,上述inputreader在当前时刻的线程状态为阻塞状态,则在当前时刻之后的预设时长内,连续检测上述主线程的线程状态预设次数,和/或,在当前时刻之后的预设时长内,连续检测上述inputreader子线程的线程状态预设次数;
连续状态判断单元,用于判断连续检测的上述主线程的线程状态是否均为阻塞状态,和/或,判断连续检测的上述inputreader子线程的线程状态是否均为阻塞状态;
线程状态检测单元,用于若连续检测的上述主线程的线程状态均为阻塞状态,和/或,连续检测的上述inputreader子线程的线程状态均为阻塞状态,则确定上述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,和/或,上述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态。
可选地,上述主线程在运行时对应有第一堆栈,上述第一堆栈用于保存上述主线程正在运行的函数,
和/或,
上述inputreader子线程在运行时对应有第二堆栈,上述第二堆栈用于保存上述inputreader子线程正在运行的函数;
相应地,上述当前状态检测单元包括:
函数检测子单元,用于在当前时刻,检测上述第一堆栈中保存的上述主线程正在运行的函数是否为等待函数,和/或,在当前时刻,检测上述第二堆栈中保存的上述inputreader子线程正在运行的函数是否为等待函数;
当前状态检测子单元,用于若上述第一堆栈中保存的上述主线程正在运行的函数为等待函数,和/或,上述第二堆栈中保存的上述inputreader子线程正在运行的函数为等待函数,则确定上述主线程在当前时刻的线程状态为阻塞状态,和/或,上述inputreader子线程在当前时刻的线程状态为阻塞状态。
可选地,上述线程状态检测模块501还包括:
第一返回单元,用于若上述主线程在当前时刻的线程状态不为阻塞状态,或者,上述inputreader子线程在当前时刻的线程状态不为阻塞状态,则在距离当前时刻预设时间间隔时,返回上述当前状态检测单元,以触发上述当前状态检测单元执行上述检测上述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测上述inputreader子线程在当前时刻的线程状态是否为阻塞状态的步骤。
可选地,上述线程状态检测模块501还包括:
第二返回单元,用于若连续检测的上述主线程的线程状态不均为阻塞状态,或者,连续检测的上述inputreader子线程的线程状态不均为阻塞状态,则在距离当前时刻预设时间间隔时,返回上述当前状态检测单元,以触发上述当前状态检测单元执行上述检测上述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测上述inputreader子线程在当前时刻的线程状态是否为阻塞状态的步骤。
可选地,上述线程状态检测装置500还包括:
重启模块,用于通过上述预设进程执行若系统处于卡死状态,则执行重启操作。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
实施例4
图7是本申请实施例四提供的终端设备的示意图。如图7所示,该实施例的终端设备6包括:处理器60、存储器61以及存储在上述存储器61中并可在上述处理器60上运行的计算机程序62。上述处理器60执行上述计算机程序62时实现上述各个方法实施例中的步骤,例如图1所示的步骤101至102。或者,上述处理器60执行上述计算机程序62时实现上述各装置实施例中各模块/单元的功能,例如图6所示模块501至502的功能。
示例性的,上述计算机程序62可以被分割成一个或多个模块/单元,上述一个或者多个模块/单元被存储在上述存储器61中,并由上述处理器60执行,以完成本申请。上述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述上述计算机程序62在上述终端设备6中的执行过程。例如,上述计算机程序62可以被分割成线程状态检测模块以及系统状态确定模块,各模块具体功能如下:
通过系统进程之外的预设进程执行:
检测上述系统进程下的主线程和/或上述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态;
若上述主线程和/或上述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态;
其中,上述预设进程不经过虚拟机解释。
上述终端设备可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图7仅仅是终端设备6的示例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如上述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述存储器61可以是上述终端设备6的内部存储单元,例如终端设备6的硬盘或内存。上述存储器61也可以是上述终端设备6的外部存储设备,例如上述终端设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,上述存储器61还可以既包括上述终端设备6的内部存储单元也包括外部存储设备。上述存储器61用于存储上述计算机程序以及上述终端设备所需的其它程序和数据。上述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者外部设备软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读存储介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机可读存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。
以上上述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (20)

1.一种系统状态检测方法,其特征在于,包括:
通过系统进程之外的预设进程执行:
检测所述系统进程下的主线程和/或所述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态;
若所述主线程和/或所述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态;
其中,所述预设进程不经过虚拟机解释。
2.如权利要求1所述的系统状态检测方法,其特征在于,所述若所述主线程和/或所述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态,包括:
若所述主线程和/或所述inputreader子线程的线程状态为阻塞状态,则:
检测所述系统进程下的看门狗watchdog子线程的线程状态是否处于阻塞状态;
若所述watchdog子线程的线程状态为阻塞状态,则确定系统处于卡死状态。
3.如权利要求1所述的系统状态检测方法,其特征在于,所述检测所述系统进程下的主线程和/或所述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态,包括:
检测所述主线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,和/或,检测所述inputreader子线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态;
相应地,所述若所述主线程和/或所述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态,包括:
若所述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,和/或,所述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,则确定系统处于卡死状态。
4.如权利要求3所述的系统状态检测方法,其特征在于,所述检测所述主线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,和/或,检测所述inputreader子线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,包括:
检测所述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测所述inputreader子线程在当前时刻的线程状态是否为阻塞状态;
若所述主线程在当前时刻的线程状态为阻塞状态,和/或,所述inputreader在当前时刻的线程状态为阻塞状态,则:
在当前时刻之后的预设时长内,连续检测所述主线程的线程状态预设次数,和/或,在当前时刻之后的预设时长内,连续检测所述inputreader子线程的线程状态预设次数;
判断连续检测的所述主线程的线程状态是否均为阻塞状态,和/或,判断连续检测的所述inputreader子线程的线程状态是否均为阻塞状态;
若连续检测的所述主线程的线程状态均为阻塞状态,和/或,连续检测的所述inputreader子线程的线程状态均为阻塞状态,则确定所述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,和/或,所述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态。
5.如权利要求4所述的系统状态检测方法,其特征在于,所述主线程在运行时对应有第一堆栈,所述第一堆栈用于保存所述主线程正在运行的函数,
和/或,
所述inputreader子线程在运行时对应有第二堆栈,所述第二堆栈用于保存所述inputreader子线程正在运行的函数;
相应地,所述检测所述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测所述inputreader子线程在当前时刻的线程状态是否为阻塞状态,包括:
在当前时刻,检测所述第一堆栈中保存的所述主线程正在运行的函数是否为等待函数,和/或,在当前时刻,检测所述第二堆栈中保存的所述inputreader子线程正在运行的函数是否为等待函数;
若所述第一堆栈中保存的所述主线程正在运行的函数为等待函数,和/或,所述第二堆栈中保存的所述inputreader子线程正在运行的函数为等待函数,则确定所述主线程在当前时刻的线程状态为阻塞状态,和/或,所述inputreader子线程在当前时刻的线程状态为阻塞状态。
6.如权利要求4所述的系统状态检测方法,其特征在于,在所述检测所述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测所述inputreader子线程在当前时刻的线程状态是否为阻塞状态的步骤之后,还包括:
若所述主线程在当前时刻的线程状态不为阻塞状态,或者,所述inputreader子线程在当前时刻的线程状态不为阻塞状态,则在距离当前时刻预设时间间隔时,返回执行所述检测所述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测所述inputreader子线程在当前时刻的线程状态是否为阻塞状态的步骤以及后续步骤。
7.如权利要求4所述的系统状态检测方法,其特征在于,在所述判断连续检测的所述主线程的线程状态是否均为阻塞状态,和/或,判断连续检测的所述inputreader子线程的线程状态是否均为阻塞状态的步骤之后,还包括:
若连续检测的所述主线程的线程状态不均为阻塞状态,或者,连续检测的所述inputreader子线程的线程状态不均为阻塞状态,则在距离当前时刻预设时间间隔时,返回执行所述检测所述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测所述inputreader子线程在当前时刻的线程状态是否为阻塞状态的步骤以及后续步骤。
8.如权利要求1至7中任一项所述的系统状态检测方法,其特征在于,所述系统状态检测方法还包括:
通过所述预设进程执行:
发出提示信息,所述提示信息用于向用户指示系统状态为卡死状态。
9.如权利要求1至7中任一项所述的系统状态检测方法,其特征在于,所述系统状态检测方法还包括:
通过所述预设进程执行:
若系统处于卡死状态,则执行重启操作。
10.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如下步骤:
通过系统进程之外的预设进程执行:
检测所述系统进程下的主线程和/或所述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态;
若所述主线程和/或所述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态;
其中,所述预设进程不经过虚拟机解释。
11.如权利要求10所述的终端设备,其特征在于,所述若所述主线程和/或所述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态,包括:
若所述主线程和/或所述inputreader子线程的线程状态为阻塞状态,则:
检测所述系统进程下的看门狗watchdog子线程的线程状态是否处于阻塞状态;
若所述watchdog子线程的线程状态为阻塞状态,则确定系统处于卡死状态。
12.如权利要求10所述的终端设备,其特征在于,所述检测所述系统进程下的主线程和/或所述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态,包括:
检测所述主线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,和/或,检测所述inputreader子线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态;
相应地,所述若所述主线程和/或所述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态,包括:
若所述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,和/或,所述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,则确定系统处于卡死状态。
13.如权利要求12所述的终端设备,其特征在于,所述检测所述主线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,和/或,检测所述inputreader子线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,包括:
检测所述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测所述inputreader子线程在当前时刻的线程状态是否为阻塞状态;
若所述主线程在当前时刻的线程状态为阻塞状态,和/或,所述inputreader在当前时刻的线程状态为阻塞状态,则:
在当前时刻之后的预设时长内,连续检测所述主线程的线程状态预设次数,和/或,在当前时刻之后的预设时长内,连续检测所述inputreader子线程的线程状态预设次数;
判断连续检测的所述主线程的线程状态是否均为阻塞状态,和/或,判断连续检测的所述inputreader子线程的线程状态是否均为阻塞状态;
若连续检测的所述主线程的线程状态均为阻塞状态,和/或,连续检测的所述inputreader子线程的线程状态均为阻塞状态,则确定所述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,和/或,所述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态。
14.如权利要求13所述的终端设备,其特征在于,所述主线程在运行时对应有第一堆栈,所述第一堆栈用于保存所述主线程正在运行的函数,
和/或,
所述inputreader子线程在运行时对应有第二堆栈,所述第二堆栈用于保存所述inputreader子线程正在运行的函数;
相应地,所述检测所述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测所述inputreader子线程在当前时刻的线程状态是否为阻塞状态,包括:
在当前时刻,检测所述第一堆栈中保存的所述主线程正在运行的函数是否为等待函数,和/或,在当前时刻,检测所述第二堆栈中保存的所述inputreader子线程正在运行的函数是否为等待函数;
若所述第一堆栈中保存的所述主线程正在运行的函数为等待函数,和/或,所述第二堆栈中保存的所述inputreader子线程正在运行的函数为等待函数,则确定所述主线程在当前时刻的线程状态为阻塞状态,和/或,所述inputreader子线程在当前时刻的线程状态为阻塞状态。
15.如权利要求13所述的终端设备,其特征在于,在所述检测所述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测所述inputreader子线程在当前时刻的线程状态是否为阻塞状态的步骤之后,还包括:
若所述主线程在当前时刻的线程状态不为阻塞状态,或者,所述inputreader子线程在当前时刻的线程状态不为阻塞状态,则在距离当前时刻预设时间间隔时,返回执行所述检测所述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测所述inputreader子线程在当前时刻的线程状态是否为阻塞状态的步骤以及后续步骤。
16.如权利要求13所述的终端设备,其特征在于,在所述判断连续检测的所述主线程的线程状态是否均为阻塞状态,和/或,判断连续检测的所述inputreader子线程的线程状态是否均为阻塞状态的步骤之后,还包括:
若连续检测的所述主线程的线程状态不均为阻塞状态,或者,连续检测的所述inputreader子线程的线程状态不均为阻塞状态,则在距离当前时刻预设时间间隔时,返回执行所述检测所述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测所述inputreader子线程在当前时刻的线程状态是否为阻塞状态的步骤以及后续步骤。
17.如权利要求10至16中任一项所述的终端设备,其特征在于,所述处理器执行所述计算机程序时还实现如下步骤:
通过所述预设进程执行:
发出提示信息,所述提示信息用于向用户指示系统状态为卡死状态。
18.如权利要求10至16中任一项所述的终端设备,其特征在于,所述处理器执行所述计算机程序时还实现如下步骤:
通过所述预设进程执行:
若系统处于卡死状态,则执行重启操作。
19.一种系统状态检测装置,其特征在于,包括:
线程状态检测模块,用于通过系统进程之外的预设进程,检测所述系统进程下的主线程和/或所述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态,其中,所述预设进程不经过虚拟机解释;
系统状态确定模块,用于通过所述预设进程,执行若所述主线程和/或所述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态。
20.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述方法的步骤。
CN201880097460.7A 2018-10-26 2018-10-26 一种系统状态检测方法、系统状态装置及终端设备 Active CN112673354B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/112171 WO2020082354A1 (zh) 2018-10-26 2018-10-26 一种系统状态检测方法、系统状态装置及终端设备

Publications (2)

Publication Number Publication Date
CN112673354A CN112673354A (zh) 2021-04-16
CN112673354B true CN112673354B (zh) 2024-04-19

Family

ID=70330874

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880097460.7A Active CN112673354B (zh) 2018-10-26 2018-10-26 一种系统状态检测方法、系统状态装置及终端设备

Country Status (2)

Country Link
CN (1) CN112673354B (zh)
WO (1) WO2020082354A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113778824B (zh) * 2021-08-23 2024-08-23 深圳市联影高端医疗装备创新研究院 操作系统实时性检测方法、装置、计算机设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7467324B1 (en) * 2004-09-30 2008-12-16 Ayaya Inc. Method and apparatus for continuing to provide processing on disk outages
CN104021071A (zh) * 2013-03-01 2014-09-03 腾讯科技(深圳)有限公司 进程生命周期的获取方法及系统
CN106484555A (zh) * 2016-09-29 2017-03-08 广东欧珀移动通信有限公司 异常检测与恢复的方法及移动终端
CN107111527A (zh) * 2014-12-19 2017-08-29 信号公司 用于分析仪器化软件的数据流处理语言
CN107704363A (zh) * 2017-09-28 2018-02-16 努比亚技术有限公司 冻屏监测方法、移动终端及计算机可读存储介质
CN108052390A (zh) * 2017-11-30 2018-05-18 努比亚技术有限公司 基于线程阻塞的内存清理方法、移动终端及可读存储介质
CN108052354A (zh) * 2017-11-06 2018-05-18 北京趣拿软件科技有限公司 应用程序无响应的确定方法、装置、处理器及终端
CN108197032A (zh) * 2018-01-23 2018-06-22 武汉斗鱼网络科技有限公司 Ios应用的主线程卡顿监测方法、介质、设备及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8433954B2 (en) * 2010-04-20 2013-04-30 Microsoft Corporation Testing components for thread safety
CN102736958A (zh) * 2012-05-30 2012-10-17 深圳市共进电子股份有限公司 一种对多个进程系统进行监控的看门狗实现方法及系统
CN102902599B (zh) * 2012-09-17 2016-08-24 华为技术有限公司 虚拟机内部故障处理方法、装置及系统
US9516100B2 (en) * 2014-02-05 2016-12-06 Travis T. Wilson Method and system for executing third-party agent code in a data processing system
CN103793288B (zh) * 2014-02-14 2017-07-18 北京邮电大学 一种软件看门狗系统及方法
US9846632B2 (en) * 2014-10-08 2017-12-19 Signalfx, Inc. Real-time reporting based on instrumentation of software
CN105224395A (zh) * 2015-10-10 2016-01-06 上海斐讯数据通信技术有限公司 一种进程管理方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7467324B1 (en) * 2004-09-30 2008-12-16 Ayaya Inc. Method and apparatus for continuing to provide processing on disk outages
CN104021071A (zh) * 2013-03-01 2014-09-03 腾讯科技(深圳)有限公司 进程生命周期的获取方法及系统
CN107111527A (zh) * 2014-12-19 2017-08-29 信号公司 用于分析仪器化软件的数据流处理语言
CN106484555A (zh) * 2016-09-29 2017-03-08 广东欧珀移动通信有限公司 异常检测与恢复的方法及移动终端
CN107704363A (zh) * 2017-09-28 2018-02-16 努比亚技术有限公司 冻屏监测方法、移动终端及计算机可读存储介质
CN108052354A (zh) * 2017-11-06 2018-05-18 北京趣拿软件科技有限公司 应用程序无响应的确定方法、装置、处理器及终端
CN108052390A (zh) * 2017-11-30 2018-05-18 努比亚技术有限公司 基于线程阻塞的内存清理方法、移动终端及可读存储介质
CN108197032A (zh) * 2018-01-23 2018-06-22 武汉斗鱼网络科技有限公司 Ios应用的主线程卡顿监测方法、介质、设备及系统

Also Published As

Publication number Publication date
WO2020082354A1 (zh) 2020-04-30
CN112673354A (zh) 2021-04-16

Similar Documents

Publication Publication Date Title
EP3352083B1 (en) Debugging method, multi-core processor, and debugging equipment
CN108462760B (zh) 电子装置、集群访问域名自动生成方法及存储介质
US10540524B2 (en) Memory access protection using processor transactional memory support
US7725637B2 (en) Methods and apparatus for generating system management interrupts
US20210357235A1 (en) Method, device, apparatus for identifying graphics card of gpu server and medium
CN113010275A (zh) 一种中断处理方法和装置
US9495224B2 (en) Switching a locking mode of an object in a multi-thread program
EP3171274A1 (en) Resource leak detecting method, device, and system
CN110764965A (zh) 进程守护方法、装置、电子设备及存储介质
US8935516B2 (en) Enabling portions of programs to be executed on system z integrated information processor (zIIP) without requiring programs to be entirely restructured
CN111831411A (zh) 任务处理方法、装置、存储介质及电子设备
CN108776633B (zh) 监控进程运行的方法、终端设备及计算机可读存储介质
CN112673354B (zh) 一种系统状态检测方法、系统状态装置及终端设备
WO2011089478A1 (en) Debugger system, method and computer program product for debugging instructions
CN107292142B (zh) 业务操作处理方法、业务操作处理装置及业务终端
CN105677481A (zh) 一种数据处理方法、系统及电子设备
CN111857854A (zh) 关机资源加载方法、装置、存储介质和电子设备
CN110874729B (zh) 电子红包识别策略的切换方法、切换装置及移动终端
CN112912855A (zh) 开机检测方法、开机检测装置及移动终端
CN115454599A (zh) 任务处理方法、系统、装置、存储介质以及电子设备
CN113934566A (zh) 异常处理方法、装置和电子设备
CN110162479B (zh) 异常应用检测方法、装置及终端设备
CN107729180B (zh) 异常信息处理方法及装置、计算机装置及可读存储介质
CN107274589B (zh) 一种金融自助终端硬件设备的访问方法、系统及终端设备
US11720395B1 (en) Cloud thread synchronization

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