对于如何有效处理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方法导致的!
分享到:
相关推荐
1. **异常向量表(Interrupt Vector Table)**:这是一系列指向特定异常处理函数的指针数组,当CPU检测到异常时,会根据异常类型跳转到相应的处理函数。 2. **异常上下文保存**:发生异常时,处理器会自动保存当前...
3. 软件中断异常(Software Interrupt):由软件通过执行SWI指令产生,主要用于操作系统中的系统调用。 4. 预取指终止异常(Prefetch Abort):当处理器试图取指令时失败(如访问非法地址),会发生此异常。 5. ...
异常处理是计算机系统设计中的一个重要概念,它使得处理器能够响应并处理在程序执行过程中出现的非标准...在实际应用中,理解异常处理机制能够帮助开发者编写出更加健壮的程序,并有效地处理各种运行时错误和外部中断。
异常控制流(ECF,Exception Control Flow)是操作系统中至关重要的一个概念,它涉及软件与硬件之间的交互,以及系统如何管理资源和服务请求。在本文中,我们将深入探讨ECF的基本概念,异常处理机制,以及其在操作...
handle_exception()函数与异常处理相关,它负责异常的识别和处理流程,包括调用中断服务例程以响应非预期的异常情况。这个函数通常与中断处理流程密切相关,因为在某些情况下,中断也可以被视为是一种特殊的异常。 ...
当在较低异常级别(如EL0)发生异常时,控制会转移到较高级别(如EL1、EL2或EL3),这使得系统能有效处理异步事件,同时保证了系统安全和稳定性。 在硬件资源管理上,ASP(Architecture Support Package)扮演了...
编程手册详细描述了异常模型和异常处理机制,包括异常状态(Exception states)、异常类型(Exception types)、异常处理器(Exception handlers)、向量表(Vector table)、异常优先级(Exception priorities)、...
本文将深入探讨`interrupt()`方法的工作原理,以及如何有效地利用它来中断线程。 首先,`Thread.stop`方法是过时的,不安全的,因为它可能导致数据不一致和资源泄露。因此,开发者应该避免使用它。相反,`Thread....
错误地捕获并忽略异常,或者只抛出通用异常(如Exception或RuntimeException),都可能导致问题难以定位。应精确地捕获和处理异常,并提供有用的错误信息。 十、线程中断和停止 线程的正常停止和中断处理是复杂的...
在本“关于多线程的C#小程序”中,我们将深入探讨如何在C#环境中创建和管理多线程,以及如何进行有效的异常处理。 一、线程基础 线程是操作系统分配CPU时间的基本单位。在单核处理器中,一个进程只有一个线程,但在...
一般异常是可以通过合理的程序设计来避免的异常,如输入输出异常、文件未找到异常等,编译器要求必须处理这些异常。 #### 36. `error`与`exception` `error`表示系统级的错误,通常发生在JVM或操作系统层面,应用...
- `Exception`:表示应用程序可以尝试捕获和处理的异常情况。 44. **异常处理机制** Java使用异常处理机制来处理程序运行过程中可能出现的异常情况。异常处理主要包括异常抛出、捕获和处理。 45. **常见的5种...
Symbian OS提供了强大的异常处理框架,可以帮助开发者有效地处理各种异常情况。 ##### 6. 其他线程函数 除了上述功能外,Symbian OS还提供了许多其他的线程相关函数,如挂起、恢复线程等。 #### 五、线程间的通信...
- **`exception`**:可以通过程序处理的异常情况。 #### 43. 异常处理机制 - **描述**:通过`try-catch-finally`结构来捕获和处理异常。 #### 44. 常见的`runtimeexception` - **`NullPointerException`**:空指针...
编程时需遵循中断服务例程(Interrupt Service Routine, ISR)和异常处理程序的编写规范,确保异常处理的正确性和效率。 3. **驱动程序开发**:Windows内核扩展通常通过编写驱动程序实现。驱动程序的安全编程要求...
- 进入内核态,保存现场,并根据ExcCode找到对应的异常处理函数。 - 调用interrupt_helper处理中断,通过IP判断中断类型,如果是时钟中断,则执行irq_timer函数。 - irq_timer函数执行包括更新屏幕、重置计数器、...
STM32的中断系统包括异常(exception)和中断(interrupt)两部分。异常是指由处理器内部产生的中断,例如复位、错误处理等,其编号范围是0到15。中断则是由外部事件或外设触发的中断,编号范围从16开始,例如外部设备...
- Java的异常处理机制包括:`try`, `catch`, `finally`, `throw`, `throws`。 - `try`块中包含可能抛出异常的代码。 - `catch`块用于捕获并处理异常。 - `finally`块无论是否发生异常都会执行。 - `throw`用于抛出...