zoukankan      html  css  js  c++  java
  • Thread interrupt表示什么

    Thread interrupt表示什么

    学习了:https://www.zhihu.com/question/41048032?sort=created

    学习了:http://blog.csdn.net/canot/article/details/51087772 这个膜拜一下;

    源码膜拜:

    public class Thread3 extends Thread{
        public void run(){  
            while(true){  
                if(Thread.currentThread().isInterrupted()){  
                    System.out.println("Someone interrupted me.");  
                }  
                else{  
                    System.out.println("Thread is Going...");  
                }
            }  
        }  
    
        public static void main(String[] args) throws InterruptedException {  
            Thread3 t = new Thread3();  
            t.start();  
            Thread.sleep(3000);  
            t.interrupt();  
        }  
    }  

    Interrupt经典使用:

    //Interrupted的经典使用代码    
        public void run(){    
                try{    
                     ....    
                     while(!Thread.currentThread().isInterrupted()&& more work to do){    
                            // do more work;    
                     }    
                }catch(InterruptedException e){    
                            // thread was interrupted during sleep or wait    
                }    
                finally{    
                           // cleanup, if required    
                }    
        }    

    三种状态会抛出异常;

    但是当线程被阻塞的时候,比如被Object.wait, Thread.join和Thread.sleep三种方法之一阻塞时。调用它的interrput()方法。可想而知,没有占用CPU运行的线程是不可能给自己的中断状态置位的。这就会产生一个InterruptedException异常。

    不是所有的都可以中断:

    不是所有的阻塞方法收到中断后都可以取消阻塞状态, 输入和输出流类会阻塞等待 I/O 完成,但是它们不抛出 InterruptedException,而且在被中断的情况下也不会退出阻塞状态. 
    尝试获取一个内部锁的操作(进入一个 synchronized 块)是不能被中断的,但是 ReentrantLock 支持可中断的获取模式即 tryLock(long time, TimeUnit unit)。
  • 相关阅读:
    execution(* *..BookManager.save(..))的解读
    metalink下载补丁包
    loop_login.sh
    EXPDP IMPDP 知识总结
    图书管理系统简单 过程
    Data Types
    Oracle 创建分页存储过程(转帖)
    绑定变量赋值
    Oracle10g、 Oracle11g完美共存
    Oracle11G 数据库 expdp、impdp使用示例
  • 原文地址:https://www.cnblogs.com/stono/p/8337130.html
Copyright © 2011-2022 走看看