CN100511156C - 强制性地终止输入/输出操作阻止的线程的设备和方法 - Google Patents

强制性地终止输入/输出操作阻止的线程的设备和方法 Download PDF

Info

Publication number
CN100511156C
CN100511156C CNB2007100791953A CN200710079195A CN100511156C CN 100511156 C CN100511156 C CN 100511156C CN B2007100791953 A CNB2007100791953 A CN B2007100791953A CN 200710079195 A CN200710079195 A CN 200710079195A CN 100511156 C CN100511156 C CN 100511156C
Authority
CN
China
Prior art keywords
thread
function
state
stops
blocked state
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.)
Expired - Fee Related
Application number
CNB2007100791953A
Other languages
English (en)
Other versions
CN101025698A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN101025698A publication Critical patent/CN101025698A/zh
Application granted granted Critical
Publication of CN100511156C publication Critical patent/CN100511156C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B01PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
    • B01DSEPARATION
    • B01D21/00Separation of suspended solid particles from liquids by sedimentation
    • B01D21/24Feed or discharge mechanisms for settling tanks
    • B01D21/245Discharge mechanisms for the sediments
    • B01D21/2466Mammoth pumps, e.g. air lift pumps
    • CCHEMISTRY; METALLURGY
    • C02TREATMENT OF WATER, WASTE WATER, SEWAGE, OR SLUDGE
    • C02FTREATMENT OF WATER, WASTE WATER, SEWAGE, OR SLUDGE
    • C02F1/00Treatment of water, waste water, or sewage
    • C02F1/40Devices for separating or removing fatty or oily substances or similar floating material
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01GWEIGHING
    • G01G17/00Apparatus for or methods of weighing material of special form or property
    • G01G17/04Apparatus for or methods of weighing material of special form or property for weighing fluids, e.g. gases, pastes
    • 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
    • CCHEMISTRY; METALLURGY
    • C02TREATMENT OF WATER, WASTE WATER, SEWAGE, OR SLUDGE
    • C02FTREATMENT OF WATER, WASTE WATER, SEWAGE, OR SLUDGE
    • C02F2303/00Specific treatment goals
    • C02F2303/22Eliminating or preventing deposits, scale removal, scale prevention

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Water Supply & Treatment (AREA)
  • Organic Chemistry (AREA)
  • Chemical Kinetics & Catalysis (AREA)
  • Environmental & Geological Engineering (AREA)
  • Hydrology & Water Resources (AREA)
  • Analytical Chemistry (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

提供一种通过终止I/O操作,将用户定义的信号发送到I/O操作阻止的线程,并且从阻止状态临时释放相应线程,从而对尝试执行I/O***调用的线程产生ThreadDeath Exception,以强制性地终止I/O操作阻止的线程的设备和方法。所述设备包括:控制单元,检查包括在应用程序中的线程的状态;信号发送单元,发送用于释放线程的阻止状态的信号;操作管理单元,对包括在线程中的I/O操作执行第一终止函数;以及线程管理单元,对线程执行第二终止函数。

Description

强制性地终止输入/输出操作阻止的线程的设备和方法
本申请要求于2006年2月22日在韩国知识产权局提交的第10-2006-0017343号韩国专利申请的优先权,该申请全部公开于此以资参考。
技术领域
本发明的设备和方法涉及强制性地终止输入/输出操作阻止的线程。更具体地说,本发明的设备和方法涉及通过终止输入/输出操作,将用户定义的信号发送到输入/输出操作阻止的线程,并且从阻止状态临时释放相应线程,从而在尝试执行输入/输出***调用的线程中产生ThreadDeath Exception,以强制性地终止输入/输出操作阻止的线程。
背景技术
Java是以独立平台方式运行写入的代码的面向对象的编程语言。在这里所使用的术语“平台”是指例如在其上执行程序的硬件或例如操作***的软件环境。通过Java编译器将使用Java写入的代码编译为Java字节码。通过支持各种基于硬件的平台的Java虚拟机执行Java字节码。
图1是显示根据现有技术的执行Java应用程序的设备的框图。Java应用程序设备10包括:应用程序管理器11、应用程序12a、12b和12c、中间件13、Java虚拟机14和操作***15。
如图1所示,应用程序包括Java应用程序1(称为12a)、Java应用程序2(称为12b)和本机应用程序12c。
应用程序管理器11通过改变应用程序的状态管理应用程序的生命周期。诸如开放式有线应用平台(OCAP)或先进的开放式有线应用平台(ACAP)等的中间件13管理应用程序的操作。
Java虚拟机14将包括在应用程序的类载入到存储器中,将类的执行代码转换为操作***15的命令代码,并且管理分配给应用程序的资源。
如上所述,应用程序管理器11管理应用程序的生命周期。为了实现这一目的,应用程序管理器11检查期望被终止的应用程序中运行的线程的列表。当在列表中没有线程时,应用程序管理器11立即终止该应用程序。当在列表中存在线程时,应用程序管理器11终止包括在列表中的线程。
为了终止包括在列表中的线程,应用程序管理器11检查列表中的第一线程的线程类对象,并且对相应对象调用中断函数(例如,Thread.interrupt())。中断函数从阻止状态临时释放线程。此时,应用程序管理器11对相应对象调用停止函数(例如,Thread.stop())。停止函数产生ThreadDeath Exception,从而线程终止。应用程序管理器11重复这一处理直到包括在列表中的所有线程都终止。
然而,当在应用程序中存在输入/输出操作(以下称为“I/O操作”)阻止的线程时,应用程序管理器11不能通过中断函数和停止函数有效地终止相应线程。
通常,当在Java程序中调用关于I/O操作的函数时,该函数尝试执行操作***15的I/O***调用。在线程处于阻止状态的kernel模式中执行***调用,等待I/O操作。然而,因为通过应用程序管理器11在用户模式中执行中断函数和停止函数,所以中断函数和停止函数不能影响在kernel模式中运行的线程。也就是说,没有等到返回I/O***调用并且kernel模式被改变为用户模式,线程终止。
第6,842,898号美国专利(Method and Apparatus for Monitoring andHandling Events for a Collection of Related Threads in a Data Processing System)公开了通过在Java虚拟机环境中监控多个相关线程发起清除处理和基于状态信息确定是否激活多个相关线程中的一个线程的方法。然而,第6,842,898号美国专利公开的发明仅提出终止一般线程的方法,而没有提出终止I/O操作阻止的线程。
因此,需要一种有效地终止I/O操作阻止的线程的方法。
发明内容
本发明的一方面在于通过终止I/O操作,将用户定义的信号发送到I/O操作阻止的线程,并且从阻止状态临时释放相应线程,从而在尝试执行I/O***调用的线程中产生ThreadDeath Exception,以强制性地终止I/O操作阻止的线程。
本发明的各方面不限于上述目的,并且通过下面的描述,本领域的技术人员将清楚地理解本发明的其它目的。
根据本发明的一方面,提供一种强制性地终止I/O操作阻止的线程的设备,所述设备包括:控制单元,检查包括在应用程序中的线程的状态;信号发送单元,将用于释放阻止状态的信号发送到线程;操作管理单元,对包括在通过信号从阻止状态释放的线程中的I/O操作执行第一终止函数;以及线程管理单元,对其I/O操作被第一终止函数终止的线程执行第二终止函数。
根据本发明的另一方面,提供一种强制性地终止I/O操作阻止的线程的方法,所述方法包括:检查包括在应用程序中的线程的状态;将用于释放阻止状态的信号发送到线程;对包括在通过信号从阻止状态释放的线程中的I/O操作执行第一终止函数;以及对其I/O操作被第一终止函数终止的线程执行第二终止函数。
附图说明
通过结合附图对本发明的示例性实施例进行的详细描述,本发明的上述和其它特点和方面将会变得更加清楚,其中:
图1是显示根据现有技术的执行Java应用程序的设备的框图;
图2是显示根据本发明的示例性实施例的强制性地终止I/O操作阻止的线程的设备的框图;
图3是显示根据本发明的示例性实施例的线程信息表的示图;
图4是显示根据本发明的示例性实施例的线程的改变状态的示图;以及
图5是显示根据本发明的示例性实施例的强制性地终止I/O操作阻止的线程的处理的流程图。
具体实施方式
通过参照下面对本发明的示例性实施例和附图的详细描述,本发明的各方面和特点以及实现本发明的各方面和特点的方法会更加容易理解。然而,本发明可以以许多不同的形式被实施并且不应被解释为局限于在此阐述的实施例。更恰当地,提供这些实施例从而本公开将会彻底和完整并完全地将本发明的构思传达给本领域的技术人员,并且本发明的范围将仅由所附权利要求进行限定。在整个说明书中,相同的标号是指相同的部件。
现将参照示出本发明的示例性实施例的附图更加全面地描述本发明。
图2是显示根据本发明的示例性实施例的强制性地终止I/O操作阻止的线程的设备的框图。用于强制性地终止I/O操作阻止的线程的设备200(以下,称为线程管理设备)包括:命令输入单元210、存储单元220、控制单元230、状态检查单元240、信号发送单元250、操作管理单元260和线程管理单元270。
命令输入单元210接收用于包括在应用程序的程序代码中的预定操作的执行命令。接收的命令可包括,例如,用于操作执行或操作终止应用程序的命令。根据正在讨论的本发明的示例性实施例,应用程序包括Java应用程序,具体地说,是包括用于I/O操作的线程的Java应用程序。
将接收的命令转换为相应命令的控制代码,接着将其发送到控制单元230。控制单元230基于命令输入单元210发送的控制代码更新线程信息表。也就是说,当发送的控制代码是用于操作执行应用程序的控制代码时,控制单元230更新存储在存储单元220中的线程信息表。下面将参照图3对示例性线程信息表进行详细描述。
另外,当发送的控制代码是用于操作终止应用程序的控制代码时,控制单元230检查包括请求被终止的应用程序中的线程的状态。此时,控制单元230可参照存储在存储单元220中的线程信息表,并且可参照来自状态检查单元240的信息。
控制单元230控制线程管理设备200的各种基本单元,诸如命令输入单元210、状态检查单元240、存储单元220、信号发送单元250、操作管理单元260和线程管理单元270。
状态检查单元240用于检查操作中当前包括的线程的状态。也就是说,状态检查单元240检测包括在一个应用程序中的所有线程的状态。此外,状态检查单元240检查是否通过线程执行操作,或者检查通过相应线程执行的操作是否是I/O操作。根据正在讨论的本发明的示例性实施例,通过控制单元230发送关于目标应用程序的类型的信息。此外,可通过控制单元230发送包括在应用程序中的线程的列表。
另外,当从控制单元230接收到检查包括在多个应用程序中的线程的状态的命令时,状态检查单元240可同时对多个应用程序执行操作。
存储单元220存储线程信息表。线程信息表可包括应用程序标识符、线程标识符、线程的状态等。下面将参照图3对示例性线程信息表进行详细描述。
存储单元220是允许从源输入和输出信息的模块,包括硬盘、闪存、紧凑式闪存(CF)卡、安全数字(SD)卡、智能媒体(SM)卡、多媒体卡(MMC)或存储棒,但不限于此。此外,存储单元220可包括在线程管理设备200中,或者可以以单独设备来提供。
信号发送单元250发送用于释放线程的阻止状态的信号。根据正在讨论的本发明的示例性实施例,所述线程是处于阻止状态的线程。信号发送单元250从控制单元230接收将成为目标的线程的列表,并且将信号发送到包括在列表中线程。发送的信号是在线程之间交换的预定信息。接收信号的线程执行与发送的信号相应的预定操作。
信号可以是例如,用户定义的信号。从I/O操作导致的阻止状态临时释放接收信号的线程。这种阻止状态包括在操作***的kernel模式中正在执行的***调用的状态。从阻止状态临时释放是指例如,从操作***的kernel模式改变为操作***的用户模式。
操作管理单元260执行I/O操作的终止函数(以下称为“第一终止函数),所述I/O操作包括在通过由信号发送单元250发送的信号从阻止状态释放的线程中。例如,当I/O操作是使用套接字的网络操作时,操作管理单元260执行套接字的终止函数。当I/O操作是关于文件的I/O操作时,操作管理单元260对文件I/O操作执行终止函数。
由于执行第一终止函数,因此从阻止状态临时释放的线程变成不能再为I/O操作执行***调用。因此,包括在线程中的I/O操作不能返回到kernel模式,而是保持在用户模式。
当执行第一终止函数时,操作管理单元260可从控制单元230接收关于相应I/O操作的信息。关于I/O操作的信息可包括应用程序标识符、线程标识符、I/O操作的类型等,但不限于此。
线程管理单元270执行其I/O操作被第一终止函数终止的线程的第二终止函数。第二终止函数可包括中断函数和停止函数,但不限于此。中断函数从阻止状态临时释放阻止的线程,停止函数产生ThreadDeath Exception。具体地说,通过第二终止函数终止处于用户模式的线程,从而容易执行应用程序的终止。当通过Java程序代码管理线程时,Thread.interrupt()函数和Thread.stop()函数可分别用作中断函数和停止函数。
当存在多个包括在应用程序中的线程时,可顺序或同时地终止该多个线程,由控制单元230确定。也就是说,参照线程信息表,控制单元230可将关于多个包括在应用程序中的线程的多条信息同时发送到信号发送单元250、操作管理单元260和线程管理单元270。此外,控制单元230可一次发送多条信息中的一条。当一次发送关于多个线程的多条信息中的一条时,控制单元230执行发送操作直到控制单元230发送关于包括在列表中的所有线程的多条信息。根据本发明的示例性实施例,一旦发送信息,控制单元230可从线程信息表中删除该信息。
图3是显示根据本发明的示例性实施例的线程信息表的示图。线程信息表300包括:应用程序标识符字段310、线程标识符字段320、I/O操作类型字段330、I/O操作位置字段340和状态字段350。
应用程序的唯一标识符包括在应用程序标识符310中。可通过使用应用程序的注册顺序或者通过用户直接输入来产生应用程序标识符。
应用程序标识符310用于指定特定应用程序。信号发送单元250、操作管理单元260和线程管理单元270可通过使用应用程序标识符检查目标应用程序。
线程的唯一标识符包括在线程标识符字段320中。可通过使用线程的产生顺序或者通过用户的直接输入产生线程标识符。
线程标识符用于指定特定线程。信号发送单元250、操作管理单元260和线程管理单元270可通过使用线程标识符检查目标线程。
多个线程可相应于一个应用程序,并且可包括在线程信息表300中。
指示包括在线程中的I/O操作类型的标识符包括在I/O操作类型字段330中。例如,标识符1可相应于文件I/O操作,标识符2可相应于网络I/O操作。
将指示I/O操作类型的标识符发送到操作管理单元260。操作管理单元260通过使用发送的标识符对相应I/O操作执行第一终止函数。也就是说,操作管理单元260提取并执行与I/O操作类型相应的第一终止函数。
执行包括在线程中的I/O操作的对象位置包括在I/O操作位置字段340中。也就是说,对象位置是它的地址,并且可通过指针来实现。例如,可***对象的文件描述符作为位置字段340的值。
将执行I/O操作的对象位置发送到操作管理单元260。操作管理单元260通过使用发送的对象位置对相应I/O操作执行第一终止函数。也就是说,将执行I/O操作的对象位置***到第一终止函数的参数中。
状态字段350包括指示线程是否被阻止的标志。例如,当线程没有被阻止时,标志可相应于值0,当线程被阻止时,标志可相应于值1。
根据本发明的示例性实施例,可通过使用经由命令输入单元210输入的命令的类型来检查线程的状态,或者可通过状态检查单元240来检查线程的状态。例如,当命令输入单元210输入的命令是对I/O操作的执行命令时,控制单元230将状态字段350的标志更新为表示阻止状态,所述I/O操作需要操作***的***调用。当命令输入单元210输入的命令是对I/O操作的终止命令时,控制单元230更新状态字段350的标志以表示非阻止状态。
另外,可通过另一应用程序终止相应I/O操作。因此,状态检查单元240可在必要时检查线程的状态,并且将检查的线程的状态通知给控制单元230。
图4是显示根据本发明的示例性实施例的线程的改变状态的示图。
如图4所示,状态A(410)是相应线程的阻止被释放的状态,也就是说,在输入对I/O操作的命令之前的状态。当输入对I/O操作的命令时,包括在应用程序中的线程根据输入的命令执行操作***的***调用。然而,因为仅在操作***的kernel模式下执行***调用,所以将线程的状态改变为状态B(420),所述状态B是阻止状态。
当线程处于状态B(420)时,如果执行第二终止函数,则通过包括在第二终止函数中的中断函数从阻止状态临时释放线程,并且将该线程移动到状态C(430)。然而,如果包括在线程中的I/O操作使***调用被执行,以将线程的模式返回到kernel模式,则将线程的状态移动到状态D(440),所示状态D还是阻止状态。
此外,当线程处于状态B(420)时,如果信号发送单元250发送信号,则从阻止状态临时释放线程,并且该线程移动到状态C(430)。此时,操作管理单元260执行第一终止函数以终止I/O操作。其结果是,因为不能执行包括在从阻止状态中临时释放的线程中的I/O操作,所以不执行返回到kernel模式,并且线程保持在状态C(430)。
此外,当线程处于状态C(430)时,线程管理单元270可执行第二终止函数。由于通过包括在第二终止函数中的停止函数产生ThreadDeathExceptrion,因此终止线程并且该线程移动到状态E(450)
如图4所示,当输入终止应用程序的命令时,通过参照线程信息表300,控制单元230使信号仅被发送到处于状态B(420)的线程,并且终止在处于状态B(420)的线程中将执行的I/O操作函数(第一终止函数)。此外,控制单元230使仅在处于状态A(410)或状态C(430)的线程中执行线程终止函数(第二终止函数)。
图5是显示根据本发明的示例性实施例的强制性地终止I/O操作阻止的线程的处理的流程图。
为了强制性地终止I/O操作阻止的线程,线程管理单元200的命令输入单元210接收操作执行应用程序的命令(操作S510)。其结果是,可以执行包括在应用程序中的I/O操作。将用于接收的命令的控制代码发送到控制单元230,并且控制单元230更新存储在存储单元220中的线程信息表300(操作S520)。也就是说,将应用程序的线程中包括相应I/O操作的线程的状态改变为阻止状态。接着,控制单元230使操作管理单元260执行相应I/O操作。
命令输入单元210接收操作终止应用程序的命令(操作S530)。将用于接收的命令的控制代码发送到控制单元230,并且控制单元230检查包括在相应应用程序中的线程是否处于阻止状态(操作S540)。根据本发明的示例性实施例,控制单元230可参照存储在存储单元220中的线程信息表300检查线程的状态。此外,控制单元230还可通过使用由状态检查单元240发送的信息来检查线程的状态。
当线程的状态不是阻止状态时,控制单元230将应用程序标识符和线程标识符发送到线程管理单元270。线程管理单元270参照发送的应用程序标识符和线程标识符来执行终止函数(第二终止函数),从而终止相应线程(操作S570)。其结果是,通过第二终止函数终止没处于阻止状态的线程。
当线程的状态是阻止状态时,控制单元230将应用程序标识符和线程标识符发送到信号发送单元250。接着,信号发送单元250参照发送的应用程序标识符和线程标识符将用于释放阻止状态的信号发送到相应线程(操作S550)。由于发送该信号,因此从I/O操作导致的阻止状态临时释放已经接收该信号的线程。
控制单元230将应用程序标识符、I/O操作类型和I/O操作位置发送到操作管理单元260。参照发送的信息,操作管理单元260执行函数(第一终止函数)以终止包括在线程中的I/O操作(操作S560)。在执行第一终止函数之后,从阻止状态临时释放的线程不能再为I/O操作执行***调用。也就是说,包括在线程中的I/O操作保持在用户模式。
控制单元230将应用程序标识符和线程标识符发送到线程管理单元270。已经接收到应用程序标识符和线程标识符的线程管理单元270执行作为用于终止相应线程的函数的第二终止函数(操作S570)。由于执行第二终止函数,因此相应线程终止。
控制单元230参照线程信息表300对包括在相应操作中的每个线程重复上述处理,直到所有线程终止。
可以理解,可由计算机程序指令实现图2的附加框图中的块,以及图5的流程图中的操作的结合。这些计算机程序指令可被提供给通用计算机、专用计算机、或者其他可编程数据处理设备的处理器,从而经由计算机或者可编程数据处理设备执行的指令创建用于实现在流程图块或流程图的操作中描述的功能的装置。这些计算机程序指令可被存储在计算机可用存储器中或者计算机或可编程数据处理设备的可读存储器中以特定方式实现所述功能。从而存储在计算机可用存储器或计算机可读存储器中的指令可生成包括执行在流程图块或流程图的操作中描述的功能的指令手段的产品。此外,计算机程序指令也可被载入计算机或计算机可编程数据处理设备,因此一系列操作步骤在计算机或可编程数据处理设备上被执行以产生计算机执行的过程,从而在计算机或可编程数据处理设备上执行的指令能够提供用于实现在流程图块或流程图的操作中描述的功能的步骤。
每个块和每个操作可代表代码的一部分,模块或段,其包括一个或更多用于实现特定的逻辑功能(或多个功能)的可执行指令。应注意的是,在本发明的一些示例性修改中,在这些块或操作中描述的功能可不按顺序产生。例如,连续示出的两个块或操作事实上可同时地被执行,或者有时块根据相应的功能以相反的顺序执行。
尽管已经结合本发明的示例性实施例公开了本发明,但本领域的技术人员应该理解,在不脱离本发明的范围和精神的情况下,可以对其进行各种修改和改变。因此,应该理解,上述示例性实施例在所有方面不是限制性而是说明性的。
根据用于强制地终止I/O操作阻止的线程的设备和方法,可获得下面的方面,以及下面没有列出的其它方面。此外,没有要求本发明获得下述方面,并且本发明的示例性、非限制性实施例可不克服下述任何问题。
第一,由于强制地终止I/O操作阻止的线程,因此快速终止包括相应线程的应用程序。
第二,因为能够快速检索到分配给应用程序的资源,所以减少了资源浪费。

Claims (16)

1、一种强制性地终止输入/输出操作阻止的线程的设备,所述设备包括:
控制单元,检查包括在应用程序中的线程的状态;
信号发送单元,发送用于临时释放线程的阻止状态的信号;
操作管理单元,对包括在从阻止状态释放的线程中的输入/输出操作执行第一终止函数;以及
线程管理单元,对输入/输出操作被第一终止函数终止的线程执行第二终止函数。
2、如权利要求1所述的设备,其中,所述应用程序包括Java程序。
3、如权利要求1所述的设备,其中,所述阻止状态包括在操作***的核模式中执行***调用的状态。
4、如权利要求3所述的设备,其中,临时释放线程的阻止状态包括将操作***的核模式改变为操作***的用户模式的操作。
5、如权利要求1所述的设备,其中,所述线程管理单元对输入/输出操作被第一终止函数终止的线程产生线程死亡异常。
6、如权利要求1所述的设备,其中,使用包括线程状态的表执行信号的发送、第一终止函数和第二终止函数中的至少一个。
7、如权利要求6所述的设备,还包括:存储单元,存储所述表。
8、如权利要求1所述的设备,其中,第二终止函数包括:
中断函数;
停止函数。
9、如权利要求8所述的设备,其中,如果对处于阻止状态的线程执行第二终止函数,则所述中断函数从阻止状态临时释放线程;
其中,停止函数对从阻止状态临时释放的线程产生线程死亡异常。
10、一种强制性地终止输入/输出操作阻止的线程的方法,所述方法包括:
检查包括在应用程序中的线程的状态;
发送用于临时释放线程的阻止状态的信号;
对包括在从阻止状态释放的线程中的输入/输出操作执行第一终止函数;以及
对输入/输出操作被第一终止函数终止的线程执行第二终止函数。
11、如权利要求10所述的方法,其中,所述应用程序包括Java程序。
12、如权利要求10所述的方法,其中,所述阻止状态包括在操作***的核模式中执行***调用的状态。
13、如权利要求12所述的方法,其中,临时释放线程的阻止状态包括将操作***的核模式改变为操作***的用户模式的操作。
14、如权利要求10所述的方法,其中,执行第二终止函数包括对线程产生线程死亡异常。
15、如权利要求10所述的方法,其中,使用包括线程状态的表执行信号的发送、第一终止函数和第二终止函数中的至少一个。
16、如权利要求15所述的方法,还包括:存储所述表。
CNB2007100791953A 2006-02-22 2007-02-15 强制性地终止输入/输出操作阻止的线程的设备和方法 Expired - Fee Related CN100511156C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020060017343 2006-02-22
KR1020060017343A KR100714710B1 (ko) 2006-02-22 2006-02-22 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치및 방법

Publications (2)

Publication Number Publication Date
CN101025698A CN101025698A (zh) 2007-08-29
CN100511156C true CN100511156C (zh) 2009-07-08

Family

ID=38269748

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100791953A Expired - Fee Related CN100511156C (zh) 2006-02-22 2007-02-15 强制性地终止输入/输出操作阻止的线程的设备和方法

Country Status (4)

Country Link
US (1) US8006246B2 (zh)
JP (1) JP4834566B2 (zh)
KR (1) KR100714710B1 (zh)
CN (1) CN100511156C (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8356356B2 (en) * 2007-01-30 2013-01-15 Microsoft Corporation Anti-debugger comprising spatially and temporally separate detection and response portions
JP4764508B2 (ja) 2007-04-05 2011-09-07 富士通セミコンダクター株式会社 表面形状センサとその製造方法
US8296776B2 (en) * 2008-06-06 2012-10-23 Apple Inc. Efficient mechanism for terminating applications
US8473964B2 (en) 2008-09-30 2013-06-25 Microsoft Corporation Transparent user mode scheduling on traditional threading systems
US8321874B2 (en) * 2008-09-30 2012-11-27 Microsoft Corporation Intelligent context migration for user mode scheduling
US8289981B1 (en) * 2009-04-29 2012-10-16 Trend Micro Incorporated Apparatus and method for high-performance network content processing
US9026720B2 (en) 2013-02-07 2015-05-05 Apple Inc. Non-volatile memory monitoring
US10248463B2 (en) * 2015-02-13 2019-04-02 Honeywell International Inc. Apparatus and method for managing a plurality of threads in an operating system
US10069949B2 (en) 2016-10-14 2018-09-04 Honeywell International Inc. System and method for enabling detection of messages having previously transited network devices in support of loop detection
JP6911566B2 (ja) * 2017-06-21 2021-07-28 株式会社リコー 情報処理装置、制限解除方法及び制限解除プログラム
US10810086B2 (en) 2017-10-19 2020-10-20 Honeywell International Inc. System and method for emulation of enhanced application module redundancy (EAM-R)
US10783026B2 (en) 2018-02-15 2020-09-22 Honeywell International Inc. Apparatus and method for detecting network problems on redundant token bus control network using traffic sensor
CN110750348A (zh) * 2019-10-23 2020-02-04 神州数码融信软件有限公司 批量作业调度方法及装置
CN114461353A (zh) * 2020-11-09 2022-05-10 中兴通讯股份有限公司 调整线程优先级的方法、终端及计算机可读存储介质

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01175059A (ja) * 1987-12-28 1989-07-11 Nec Corp ジョブ管理方式
JP2856003B2 (ja) 1992-09-28 1999-02-10 日本電気株式会社 非同期データ入出力方式
JP3110185B2 (ja) * 1993-01-18 2000-11-20 株式会社東芝 計算機システム
JP2693916B2 (ja) * 1994-09-22 1997-12-24 米沢日本電気株式会社 タスクスケジュール方法
US6349322B1 (en) * 1998-05-06 2002-02-19 Sun Microsystems, Inc. Fast synchronization for programs written in the JAVA programming language
JP2000293380A (ja) 1999-04-01 2000-10-20 Nec Corp 複数スレッドの終了処理装置および方法
US6842898B1 (en) * 1999-06-10 2005-01-11 International Business Machines Corporation Method and apparatus for monitoring and handling events for a collection of related threads in a data processing system
US6832236B1 (en) * 1999-07-08 2004-12-14 International Business Machines Corporation Method and system for implementing automatic filesystem growth monitor for production UNIX computer system
US6457142B1 (en) * 1999-10-29 2002-09-24 Lucent Technologies Inc. Method and apparatus for target application program supervision
US6711739B1 (en) * 1999-11-08 2004-03-23 Sun Microsystems, Inc. System and method for handling threads of execution
US6687729B1 (en) * 1999-12-20 2004-02-03 Unisys Corporation System and method for providing a pool of reusable threads for performing queued items of work
JP3961301B2 (ja) * 2001-01-25 2007-08-22 松下電器産業株式会社 デジタル機器、タスク管理方法及びそのプログラム
US6910209B2 (en) * 2001-04-30 2005-06-21 Sun Microsystems, Inc. Clean thread termination
JP2003029981A (ja) * 2001-07-11 2003-01-31 Denso Corp 端末およびコンピュータプログラム
JP4058752B2 (ja) 2001-12-11 2008-03-12 日本電気株式会社 携帯情報端末装置
US6886112B2 (en) * 2002-06-28 2005-04-26 Microsoft Corporation Recovering from device failure
US7216346B2 (en) * 2002-12-31 2007-05-08 International Business Machines Corporation Method and apparatus for managing thread execution in a multithread application
US7337444B2 (en) * 2003-01-09 2008-02-26 International Business Machines Corporation Method and apparatus for thread-safe handlers for checkpoints and restarts
US7337443B2 (en) * 2003-06-30 2008-02-26 Microsoft Corporation Method and apparatus for processing program threads
JP2005050023A (ja) * 2003-07-31 2005-02-24 Fujitsu Ltd 情報処理装置及び方法
US7424599B2 (en) * 2003-08-28 2008-09-09 Mips Technologies, Inc. Apparatus, method, and instruction for software management of multiple computational contexts in a multithreaded microprocessor
JP4246672B2 (ja) 2004-06-03 2009-04-02 株式会社リコー 画像形成装置および画像形成装置制御方法
US7698708B1 (en) * 2004-07-30 2010-04-13 Symantec Operating Corporation Method and system for persistent, recoverable user-level locks
JP2006146678A (ja) * 2004-11-22 2006-06-08 Hitachi Ltd 情報処理装置におけるプログラム制御方法、情報処理装置、及びプログラム
US7424644B2 (en) * 2005-03-01 2008-09-09 Microsoft Corporation Method and system for recovering data from a hung application

Also Published As

Publication number Publication date
CN101025698A (zh) 2007-08-29
KR100714710B1 (ko) 2007-05-04
US8006246B2 (en) 2011-08-23
US20070198980A1 (en) 2007-08-23
JP2007226799A (ja) 2007-09-06
JP4834566B2 (ja) 2011-12-14

Similar Documents

Publication Publication Date Title
CN100511156C (zh) 强制性地终止输入/输出操作阻止的线程的设备和方法
CN107807815B (zh) 分布式处理任务的方法和装置
CN110716748A (zh) 业务处理方法、装置、计算机可读介质及电子设备
CN111399897A (zh) 基于kubernetes的应用发布方法以及***
CN103455376A (zh) 对操作***中多个进程对现场可编程门阵列的使用的管理
CN100549965C (zh) 在包容框架环境中管理资源的设备和方法
CN104657258B (zh) 一种向目标进程内注入Java字节码的方法及装置
CN105242962A (zh) 基于异构众核的轻量级线程快速触发方法
CN110569250B (zh) 一种物联网网元的解析库的管理方法及装置
CN112000353A (zh) 应用运行方法、装置及存储介质
CN102262555B (zh) 加载java三方库的不同版本的方法和装置
CN111343181A (zh) 报文的处理方法,***以及数据池和计算机可读存储介质
US20040148603A1 (en) Technique for reaching consistent state in a multi-threaded data processing system
US20070220249A1 (en) Data structure and method for managing modules associated with a kernel
CN113157411A (zh) 一种基于Celery的可靠可配置任务***及装置
CN114327484A (zh) 支持多架构的k8s集成与部署方法、***及存储介质
CN112132530B (zh) 可视化动态流程编排方法及***
CN108197029A (zh) 一种获取进程信息的方法和设备
CN114237634A (zh) 应用发布风险识别方法、装置、设备、介质、程序产品
CN109634636B (zh) 应用处理方法、装置、设备和介质
CN114037496A (zh) 一种基于状态机的订单状态管理方法、装置、设备及介质
CN113515299A (zh) 软件开发工具包sdk热升级方法、装置、设备及存储介质
CN111897599A (zh) 基于微核模型插件模式的服务方法、装置、设备及存储介质
CN113127051B (zh) 一种应用资源打包过程监控方法、装置、设备和介质
CN116661905B (zh) 一种基于动态库加载实现设备自动适配方法以及***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090708

Termination date: 20160215