美文网首页
java中断方法的介绍

java中断方法的介绍

作者: 稀饭粥95 | 来源:发表于2018-08-31 11:51 被阅读18次

interrupt()

修改线程的中断标识,在wait、join和sleep方法下的会抛出异常InterruptedException,线程的中断状态会被jvm自动清除,线程的中断标志重新设置为false

isInterrupted()

只是简单的查询中断状态

interrupted()

静态方法。如果当前线程被中断,你调用interrupted方法,第一次会返回true。然后,当前线程的中断状态被方法内部清除了,设置为true。那么第二次调用时就会返回false。

public static boolean interrupted() {
        return currentThread().isInterrupted(true);
}

/**
     * Tests if some Thread has been interrupted.  The interrupted state
     * is reset or not based on the value of ClearInterrupted that is
     * passed.
*/
private native boolean isInterrupted(boolean ClearInterrupted);

异常处理

wait、join和sleep方法下的会抛出异常,将线程的中断标志重新设置为false
等待锁的时候不抛出异常

public class Main{
    public static byte[] lock= new byte[1];
    
    public static void main(String[] args)  {
        
        Thread th1 = new Thread("1"){
            public void run(){
                synchronized(lock){
                    System.out.println(Thread.currentThread().getName());
                    try {
                        Thread.sleep(5000);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
        };
        Thread th2 = new Thread("2"){
            public void run(){
                synchronized(lock){
                    System.out.println(Thread.currentThread().isInterrupted());
                
                }
            }
        };
        th1.start();
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        th2.start();
        th2.interrupt();
        
    }
}
//输出
1
true

相关文章

  • java中断方法的介绍

    interrupt() 修改线程的中断标识,在wait、join和sleep方法下的会抛出异常Interrupte...

  • Java线程中断

    本文主要介绍Java线程中断一些相关的概念以及注意点 Java线程的中断并不是强制的中断,调用线程中断的方法时只是...

  • [并发J.U.C] 用例子理解线程中断

    前言 本文主要集中在Java线程的中断的使用和操作上.完整代码:代码 方法 关于中断的有三个方法都在java.la...

  • JAVA并发编程(三)线程协作与共享

    1. 线程中断 java线程中断是协作式,而非抢占式 1.1. 线程中断相关方法 interrupt()将线程的中...

  • JAVA中断正在运行线程的方法

    Java或者Android开发中经常要中断线程,这里总结下中断正在运行的线程 方法一: 设置标记位置flag 方法...

  • 线程中断

    什么是线程中断?线程中断即线程运行过程中被其他线程打断了。 线程中断的重要方法2.1 java.lang.Thre...

  • Java中断线程

    Java并没有提供真正中断线程的方法, 中断线程最好的方法就是让线程执行完成自然终止 ,stop(),suspen...

  • 脑壳疼:Java Object.wait() jvm的bug

    在使用java线程的时候,经常会用到wait方法,如果在调用wait方法的时候被中断,jvm会捕获这个中断不断调用...

  • 5-8响应中断的方法

    如果当前线程以下方法的过程中,收到中断信号,该线程是会感知到的,这些方法就具备响应中断的能力。java.lang....

  • JAVA多线程10-基础篇-线程终止

    本节摘要: 介绍线程中断的原理、阻塞方法以及代码示例 一、为什么需要中断 有哪些场景我们需要中断线程?通常有以下几...

网友评论

      本文标题:java中断方法的介绍

      本文链接:https://www.haomeiwen.com/subject/etjswftx.html