`
xylong
  • 浏览: 189856 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

如何有效处理interruptException异常

阅读更多

对于如何有效处理interruptException异常,

参见大湿Brian  Goetz:http://www.ibm.com/developerworks/cn/java/j-jtp05236.html

                                                         http://agapple.iteye.com/blog/970055

 

再贴上简单代码演示interruptException异常如何发生?

 

 

public class InterruptCause {

	public static void main(String[] args) {
		InterruptCause itc = new InterruptCause();
		InterruptThread interuptThread = itc.new InterruptThread();
		interuptThread.start();
		try {
			Thread.sleep(2000L);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		interuptThread.interrupt();
		System.out.println("没有什么?");
	}
	
	class InterruptThread extends Thread{
		@Override
		public void run() {
			System.out.println("线程名称:"+Thread.currentThread().getName());
			try {
				Thread.sleep(3000L);
				//Thread.sleep(1000L);//两种方式导致结果是不一样的
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
}

    对于睡眠3s,还是1s是针对main主线程的2s而设置,如果睡眠3s则会出现interruptException异常,而1s是不会发生    的,是因为3s会导致主线程优先执行interrupt方法导致的!

 

分享到:
评论

相关推荐

    Interrupt and Exception

    **中断**(Interrupt)和**异常**(Exception)都是在程序执行过程中发生的非正常事件,它们会导致CPU暂时停止当前任务的执行,并转向特定的处理程序进行处理。不同之处在于,中断通常是由外部设备触发的,如键盘或网络...

    Linux内核中的异常处理机制分析

    1. **异常向量表(Interrupt Vector Table)**:这是一系列指向特定异常处理函数的指针数组,当CPU检测到异常时,会根据异常类型跳转到相应的处理函数。 2. **异常上下文保存**:发生异常时,处理器会自动保存当前...

    对ARM异常(Exceptions)的理解

    3. 软件中断异常(Software Interrupt):由软件通过执行SWI指令产生,主要用于操作系统中的系统调用。 4. 预取指终止异常(Prefetch Abort):当处理器试图取指令时失败(如访问非法地址),会发生此异常。 5. ...

    Exceptions in MIPS.

    异常处理是计算机系统设计中的一个重要概念,它使得处理器能够响应并处理在程序执行过程中出现的非标准...在实际应用中,理解异常处理机制能够帮助开发者编写出更加健壮的程序,并有效地处理各种运行时错误和外部中断。

    第八章-异常控制流ECF1

    异常控制流(ECF,Exception Control Flow)是操作系统中至关重要的一个概念,它涉及软件与硬件之间的交互,以及系统如何管理资源和服务请求。在本文中,我们将深入探讨ECF的基本概念,异常处理机制,以及其在操作...

    interrupt_API.pdf

    handle_exception()函数与异常处理相关,它负责异常的识别和处理流程,包括调用中断服务例程以响应非预期的异常情况。这个函数通常与中断处理流程密切相关,因为在某些情况下,中断也可以被视为是一种特殊的异常。 ...

    ARM的64位架构研究.pdf

    当在较低异常级别(如EL0)发生异常时,控制会转移到较高级别(如EL1、EL2或EL3),这使得系统能有效处理异步事件,同时保证了系统安全和稳定性。 在硬件资源管理上,ASP(Architecture Support Package)扮演了...

    STM32F1F4系列编程手册

    编程手册详细描述了异常模型和异常处理机制,包括异常状态(Exception states)、异常类型(Exception types)、异常处理器(Exception handlers)、向量表(Vector table)、异常优先级(Exception priorities)、...

    Java interrupt()方法使用注意_动力节点Java学院整理

    本文将深入探讨`interrupt()`方法的工作原理,以及如何有效地利用它来中断线程。 首先,`Thread.stop`方法是过时的,不安全的,因为它可能导致数据不一致和资源泄露。因此,开发者应该避免使用它。相反,`Thread....

    Java.Bug模式详解

    错误地捕获并忽略异常,或者只抛出通用异常(如Exception或RuntimeException),都可能导致问题难以定位。应精确地捕获和处理异常,并提供有用的错误信息。 十、线程中断和停止 线程的正常停止和中断处理是复杂的...

    关于多线程的C#小程序

    在本“关于多线程的C#小程序”中,我们将深入探讨如何在C#环境中创建和管理多线程,以及如何进行有效的异常处理。 一、线程基础 线程是操作系统分配CPU时间的基本单位。在单核处理器中,一个进程只有一个线程,但在...

    java软件工程师面试宝典

    - `Exception`:表示应用程序可以尝试捕获和处理的异常情况。 44. **异常处理机制** Java使用异常处理机制来处理程序运行过程中可能出现的异常情况。异常处理主要包括异常抛出、捕获和处理。 45. **常见的5种...

    Symbian OS:线程编程

    Symbian OS提供了强大的异常处理框架,可以帮助开发者有效地处理各种异常情况。 ##### 6. 其他线程函数 除了上述功能外,Symbian OS还提供了许多其他的线程相关函数,如挂起、恢复线程等。 #### 五、线程间的通信...

    java葵花宝典

    - **`exception`**:可以通过程序处理的异常情况。 #### 43. 异常处理机制 - **描述**:通过`try-catch-finally`结构来捕获和处理异常。 #### 44. 常见的`runtimeexception` - **`NullPointerException`**:空指针...

    寒江独钓-Windows内核安全编程(完整版)--源码

    编程时需遵循中断服务例程(Interrupt Service Routine, ISR)和异常处理程序的编写规范,确保异常处理的正确性和效率。 3. **驱动程序开发**:Windows内核扩展通常通过编写驱动程序实现。驱动程序的安全编程要求...

    Project2 A Simple Kernel-part2 设计文档1

    - 进入内核态,保存现场,并根据ExcCode找到对应的异常处理函数。 - 调用interrupt_helper处理中断,通过IP判断中断类型,如果是时钟中断,则执行irq_timer函数。 - irq_timer函数执行包括更新屏幕、重置计数器、...

    零死角玩转stm32-初级篇 KEY(EXTI中断)

    STM32的中断系统包括异常(exception)和中断(interrupt)两部分。异常是指由处理器内部产生的中断,例如复位、错误处理等,其编号范围是0到15。中断则是由外部事件或外设触发的中断,编号范围从16开始,例如外部设备...

    java最新面试文档

    - Java的异常处理机制包括:`try`, `catch`, `finally`, `throw`, `throws`。 - `try`块中包含可能抛出异常的代码。 - `catch`块用于捕获并处理异常。 - `finally`块无论是否发生异常都会执行。 - `throw`用于抛出...

Global site tag (gtag.js) - Google Analytics