CN100511156C - 强制性地终止输入/输出操作阻止的线程的设备和方法 - Google Patents
强制性地终止输入/输出操作阻止的线程的设备和方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000002265 prevention Effects 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000007689 inspection Methods 0.000 claims description 2
- 238000007599 discharging Methods 0.000 claims 2
- 230000008054 signal transmission Effects 0.000 claims 2
- 230000006870 function Effects 0.000 description 68
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B01—PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
- B01D—SEPARATION
- B01D21/00—Separation of suspended solid particles from liquids by sedimentation
- B01D21/24—Feed or discharge mechanisms for settling tanks
- B01D21/245—Discharge mechanisms for the sediments
- B01D21/2466—Mammoth pumps, e.g. air lift pumps
-
- C—CHEMISTRY; METALLURGY
- C02—TREATMENT OF WATER, WASTE WATER, SEWAGE, OR SLUDGE
- C02F—TREATMENT OF WATER, WASTE WATER, SEWAGE, OR SLUDGE
- C02F1/00—Treatment of water, waste water, or sewage
- C02F1/40—Devices for separating or removing fatty or oily substances or similar floating material
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01G—WEIGHING
- G01G17/00—Apparatus for or methods of weighing material of special form or property
- G01G17/04—Apparatus for or methods of weighing material of special form or property for weighing fluids, e.g. gases, pastes
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- C—CHEMISTRY; METALLURGY
- C02—TREATMENT OF WATER, WASTE WATER, SEWAGE, OR SLUDGE
- C02F—TREATMENT OF WATER, WASTE WATER, SEWAGE, OR SLUDGE
- C02F2303/00—Specific treatment goals
- C02F2303/22—Eliminating 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所述的方法,还包括:存储所述表。
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)
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 |
CN101663558B (zh) | 2007-04-05 | 2011-06-22 | 富士通半导体股份有限公司 | 表面形状传感器及其制造方法 |
US8296776B2 (en) * | 2008-06-06 | 2012-10-23 | Apple Inc. | Efficient mechanism for terminating applications |
US8321874B2 (en) * | 2008-09-30 | 2012-11-27 | Microsoft Corporation | Intelligent context migration for user mode scheduling |
US8473964B2 (en) | 2008-09-30 | 2013-06-25 | Microsoft Corporation | Transparent user mode scheduling on traditional threading systems |
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)
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 | 情報処理装置及び方法 |
US7610473B2 (en) | 2003-08-28 | 2009-10-27 | Mips Technologies, Inc. | Apparatus, method, and instruction for initiation of concurrent instruction streams in a multithreading 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 |
-
2006
- 2006-02-22 KR KR1020060017343A patent/KR100714710B1/ko not_active IP Right Cessation
-
2007
- 2007-01-16 US US11/653,398 patent/US8006246B2/en not_active Expired - Fee Related
- 2007-02-15 CN CNB2007100791953A patent/CN100511156C/zh not_active Expired - Fee Related
- 2007-02-21 JP JP2007040391A patent/JP4834566B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2007226799A (ja) | 2007-09-06 |
US8006246B2 (en) | 2011-08-23 |
KR100714710B1 (ko) | 2007-05-04 |
CN101025698A (zh) | 2007-08-29 |
US20070198980A1 (en) | 2007-08-23 |
JP4834566B2 (ja) | 2011-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100511156C (zh) | 强制性地终止输入/输出操作阻止的线程的设备和方法 | |
CN105242962B (zh) | 基于异构众核的轻量级线程快速触发方法 | |
CN107807815B (zh) | 分布式处理任务的方法和装置 | |
CN110716748A (zh) | 业务处理方法、装置、计算机可读介质及电子设备 | |
CN111399897A (zh) | 基于kubernetes的应用发布方法以及系统 | |
CN103455376A (zh) | 对操作系统中多个进程对现场可编程门阵列的使用的管理 | |
US8881162B2 (en) | Apparatus and method for managing resources in containment framework environment | |
CN104657258B (zh) | 一种向目标进程内注入Java字节码的方法及装置 | |
CN111343181B (zh) | 报文的处理方法,系统以及数据池和计算机可读存储介质 | |
CN110597531A (zh) | 分布式的模块升级方法、装置及存储介质 | |
CN112000353A (zh) | 应用运行方法、装置及存储介质 | |
CN102262555B (zh) | 加载java三方库的不同版本的方法和装置 | |
CN110569250A (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的可靠可配置任务系统及装置 | |
CN109507991B (zh) | 一种双轴伺服控制平台调试系统及方法 | |
CN112132530B (zh) | 可视化动态流程编排方法及系统 | |
CN108197029A (zh) | 一种获取进程信息的方法和设备 | |
CN114237634A (zh) | 应用发布风险识别方法、装置、设备、介质、程序产品 | |
CN108037964A (zh) | 一种设置分辨率的方法、存储介质及智能设备 | |
CN109634636B (zh) | 应用处理方法、装置、设备和介质 | |
CN113515299A (zh) | 软件开发工具包sdk热升级方法、装置、设备及存储介质 | |
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 |