• 关于线程中断的3个重要方法总结


    最近老有不少开发人员咨询线程中断的相关知识,刚好利用业余时间总结了下,请大家不吝指教:

    线程中断主要设涉及3个方法:实例方法 interrupt、静态方法interrupted、实例方法isInterrupted:

      1. 实例方法 interrupt作用:此方法调用后,如果调用实例线程当前正在调用wait、join、sleep、或在可中断的InterruptibleChannel IO操作、或阻塞在 Selector ,这几种情况下线程会在调用上述方法的代码块中抛出相应的InterruptedException ,但不会将中断状态值interrupt status由false设为true;如果当前现在正在正常执行,则调用interrupt方法调用后只是会设置一下线程的interrupt status,由false变成true;根据此方法的特点,抛出异常与设置中断状态值为true不会同时进行;

      2. 静态方法interrupted作用:清除当前线程interrupt status状态值,即如果当前线程的中断状态值是true(即已被中断),则调用此方法后中断状态值将变成false,此时方法返回值为true,表示清楚中断状态成功;如果当前线程未被中断,则不会改变中断状态值,此时方法返回值为false。因此,如果在线程已被中断的情况下连续两次调用interrupted方法,第一次返回true,第二次返回false;根据此方法的特点,可以看出:只有当前线程自己才可以将中断状态值由true改为false

      3. 实例方法isInterrupted作用:只是检测调用实例线程的中断状态值,如果已中断则返回true,否则返回false;

    然否?

  • 相关阅读:
    Windows共享上网的详细设置
    使用树莓派实现微信远程监控
    数据结构——队列及循环队列
    springmvc web 大文件上传源代码
    springboot web 大文件上传源代码
    jsp web 大文件上传源代码
    csharp web 大文件上传源代码
    c# web 大文件上传源代码
    .net web 大文件上传源代码
    asp.net web 大文件上传源代码
  • 原文地址:https://www.cnblogs.com/dimmacro/p/5144420.html
Copyright © 2020-2023  润新知