`
xly_971223
  • 浏览: 1276862 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java Thread只interrupted() interrupt() isInterrupted()

    博客分类:
  • java
 
阅读更多
Thread类有几个与中断有关的方法

Thread.interrupted();

这是个静态方法
这个方法有点不好理解,因为连续调用两次的结果可能不一样
这个方法做了两件事:
1 返回当前中断状态
2 中断状态复位为false


interrupt() 

interrupt()方法用来中断线程,一般是由A线程来中断B线程 实例代码
main(){
Thread a = new Thread();
a.start();
...
a.interrupt(); 
}


isInterrupted()
方法会返回线程的状态



线程中断状态
java中与线程中断状态有关的方法有
wait() notify() notifyAll() join()
这几个方法都会抛出中断异常 InterruptException 这样就可以结束线程
但如果线程中没有这几个方法,而是进行繁重耗时的计算工作,如何中断呢?
用下面这段代码结束
if(Thread.interrupted()){
    throw new InterruptException();
}


分享到:
评论

相关推荐

    java线程中的interrupt,isInterrupt,interrupted方法

    在 Java 中,线程(Thread)类提供了三个相关的方法:interrupt、isInterrupted 和 interrupted,这三个方法都是用于处理线程的中断状态的。下面我们将详细介绍这三个方法的用法和区别。 interrupt 方法 interrupt...

    Thread类的interrupt(),interrupted(),isInterrupted()1

    在Java多线程编程中,理解`Thread`类中的`interrupt()`、`interrupted()`和`isInterrupted()`方法至关重要,因为它们与线程中断机制紧密相关。线程中断是Java提供的一种协作式中断机制,它并不强制结束线程,而是...

    浅谈Java线程Thread之interrupt中断解析

    Java线程Thread之interrupt中断解析 Java线程Thread之interrupt中断机制是Java多线程编程中的一种重要机制。通过调用Thread.interrupt()方法,可以设置线程的中断状态位,线程会不时地检测这个中断标示位,以判断...

    JAVA多线程之中断机制stop()、interrupted()、isInterrupted()

    总结来说,Java多线程的中断机制通过`interrupt()`方法设置中断标志,然后由线程自己通过`isInterrupted()`或`interrupted()`检查并响应中断请求。避免使用过时的`stop()`方法,因为它可能带来不可预知的副作用。...

    Java中interrupt的使用.docx

    总的来说,Java的中断机制提供了一种安全且灵活的方式来停止线程,通过结合使用`interrupt()`, `isInterrupted()`, 和 `interrupted()`方法,以及妥善处理`InterruptedException`,可以确保线程在适当的时候优雅地...

    java线程强制停止的两个Demo

    Java推荐使用更安全的中断机制,即通过`Thread.interrupt()`方法向线程发送中断信号,然后在线程的run方法中定期检查`isInterrupted()`或`interrupted()`状态来优雅地停止线程。这种方式允许线程清理资源并正常退出...

    Java Thread Programming (Sams) java线程编程(含code)

    - `isInterrupted()`和`interrupted()`:检查线程是否被中断。 - 异常处理:`ThreadDeath`是线程中断抛出的异常,通常不需要捕获,但子线程可能会抛出其他异常,需要在主线程中捕获。 6. **线程池** - `...

    JavaThread中断机制共11页.pdf.zip

    Java中的线程中断状态是一种标志,由`Thread.isInterrupted()`和`Thread.interrupted()`两个方法来检查和清除。`isInterrupted()`用于判断线程是否被中断,不会清除中断状态;而`interrupted()`不仅检查中断状态,...

    JavaThread.pdf

    - Thread.getThreadGroup()获取线程所属的线程组,Thread.interrupt()和Thread.currentThread().interrupted()分别用于中断和检查当前线程是否被中断。 10. **线程的等待/通知机制** - 使用wait()、notify()、...

    javathread.part03.rar

    线程应定期检查`isInterrupted()`或`interrupted()`方法,以便在适当时候结束。 10. **Join操作**: 通过调用`join()`方法,一个线程可以等待另一个线程完成其工作,这样可以控制线程的执行顺序。 11. **线程局部...

    java Thread

    2. isInterrupted()和interrupted()方法:检查线程是否已被中断,前者不会清除中断标志,后者会。 七、线程池 Java 5及以上版本引入了Executor框架,其中ThreadPoolExecutor是常用的线程池实现,可以有效管理线程的...

    java中 如何终止一个线程

    这是因为`Thread.interrupted()`会清除当前线程的中断状态,而`Thread.isInterrupted()`则只读取当前线程的中断状态而不进行清除。 2. **资源释放**:在处理中断时,还应考虑线程所使用的资源是否需要被释放。例如,...

    javathread.part04.rar

    - `Thread.interrupt()`:标记线程为中断状态,线程可以通过检查`isInterrupted()`或`interrupted()`来响应中断请求。 10. **线程安全的日志和调试**: - 使用适当的日志框架(如Log4j、SLF4J)记录线程信息。 -...

    理解多线程,写一个多线程应用程序,要求能在用户级实现线程的调度,如启动、挂起、恢复、停止,的C thread、java thread实现。

    Java中,`join`方法有类似功能,而`interrupt`方法可以用来中断线程,通常配合`isInterrupted`或`interrupted`检查中断状态。 在实际应用中,线程调度还需要考虑线程同步和互斥问题,以防止数据竞争和死锁。C语言中...

    利用Thread创建线程-java

    但这并不意味着线程会立即停止,而是设置线程的中断标志,线程需要在适当的地方检查`isInterrupted()`或`interrupted()`方法来响应中断请求。 8. **线程池** Java提供`ExecutorService`和`ThreadPoolExecutor`等...

    Java处理InterruptedException异常的理论与实践

    `Thread.interrupt()`方法用来设置线程的中断标志,而`Thread.isInterrupted()`和`Thread.interrupted()`方法分别用于检查和清除这个中断标志。 处理`InterruptedException`有几种策略。一种常见的做法是重新抛出...

    java中断线程的正确姿势完整示例.rar

    2. **检查中断状态**:在可能导致阻塞的操作(如`sleep()`, `wait()`, `join()`, 或I/O操作)之前,应检查`Thread.interrupted()`。如果返回`true`,说明线程已被中断,可以抛出`InterruptedException`或采取其他...

    Java Thread

    `Thread.interrupt()`方法用于中断线程,而`isInterrupted()`和`interrupted()`检查线程是否被中断。中断主要用于请求线程停止工作,但并不立即终止线程,需要在`run()`方法内部检查中断标志并作出响应。 六、...

    java-thread-vedio.rar_java vedio

    - **interrupt()**:标记线程为中断状态,线程可以通过检查isInterrupted()或interrupted()来响应中断。 - 不推荐使用Thread.stop()、Thread.suspend()和Thread.resume(),因为它们可能导致不可预测的行为。 8. *...

Global site tag (gtag.js) - Google Analytics