首页 > 其他分享 >中断机制小总结

中断机制小总结

时间:2024-01-21 18:01:15浏览次数:19  
标签:总结 中断 interrupted public boolean 线程 机制 isInterrupted

方法介绍

  • public void interrupt()
    • 实例方法 Just to set the interrupt flag
    • 实例方法仅仅是设置线程的中断状态为true,发起一个协商而不会立刻停止线程
  • public static boolean interrupted()
    • 静态方法 Thread.interrupted();
    • 判断线程是否被中断并清除当前中断状态(做了两件事情)
      • 1.返回当前线程的中断状态,测试当前线程是否已被中断
      • 2.将当前线程的中断状态清零并重新设置为false,清除线程的中断状态
      • 3.这个方法有点不好理解在于如果连续两次调用此方法,则第二次返回false,因为连续调用两次的结果可能不一样
  • public boolean isInterrupted()
    • 实例方法
    • 判断当前线程是否被中断(通过检查中断标志位)

public boolean isInterrupted() 和 public void interrupt() 的区别

  Thread.interrupted();//静态方法
  Thread.currentThread().isInterrupted();//实例方法

    /**
     * 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);

上面isInterrupted 方法清晰的表达了“中断状态将会根据传入的ClearInterrupted参数值确定是否重置”

从上图看出静态方法和实例方法 底层都调的isInterrupted(boolean ClearInterrupted)方法 只不过一个传的是false 不需要清理打断状态 一个传的是true 需要清理打断状态

标签:总结,中断,interrupted,public,boolean,线程,机制,isInterrupted
From: https://www.cnblogs.com/mangoubiubiu/p/17978088

相关文章

  • 中断机制之中断协商案例深度解析 上
    说明具体来说,当一个线程调用interrupt()时:如果线程处于正常活动状态,那么会将该线程的中断标志设置为true,仅此而已。被设置中断标志的线程将继续正常运行,不受影响。所以,innerupt()并不能真正的中断线程,需要被调用的线程自己进行配合才行。如果线程处于被阻塞状态(例如处于sl......
  • 关于死锁的一些总结
    死锁的问题历来是面试中常问的问题,可是在实际工作中可能几年都遇到不了一次这种问题.不知是幸运还是不幸,新进的这家公司刚去就遇到了两个很经典的死锁问题,这里分享一下排查和解决思路死锁的发生往往离不开多线程并发,我所遇到的两个场景分别是数据库的并发和代码层面的并......
  • 中断机制之通过interrupt实现线程中断停止
    如何停止中断运行中的线程?首先,一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止,自己来决定自己的命运,所以,Thread.stop,Thread.suspend,Thread.resume都已经被废弃了interrupt实现线程中断停止用isInterrupted判断当前线程是否被中断,用interrupt()设置线......
  • 中断机制之通过AtomicBoolean实现线程中断停止
    如何停止中断运行中的线程?首先,一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止,自己来决定自己的命运,所以,Thread.stop,Thread.suspend,Thread.resume都已经被废弃了AtomicBoolean实现线程中断演示通过修改共享变量的方式来达到通知的目的从而使目的线程......
  • 中断机制之通过volatile实现线程中断停止
    如何停止中断运行中的线程?首先,一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止,自己来决定自己的命运,所以,Thread.stop,Thread.suspend,Thread.resume都已经被废弃了volatile实现线程中断演示通过修改共享变量的方式来达到通知的目的从而使目的线程中断......
  • JUC并发编程 线程中断介绍及相关Api方法
    什么是中断机制首先,一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止,自己来决定自己的命运,所以,Thread.stop,Thread.suspend,Thread.resume都已经被废弃了其次,在Java中没有办法立即停止一条线程,然而停止线程却显得尤为重要,如取消一个耗时操作。因此,Java提供......
  • 线性DP简单总结
    线性DP简单总结动态规划原理可以用动态规划解决的问题,应具备三种条件:最优子结构(由小推大)无后效性(由过去推现在)子问题重叠(已经求解的子问题不必重复求解)动态规划构成“状态”“阶段”“决策”为动态规划三要素。最长上升子序列问题给定一个长度为\(n\)的序列\(A......
  • 0/1背包简单总结
    0/1背包简单总结问题:\(n\)件物品选择性放入载重为\(C\)的背包。第\(i\)件物品的重量为\(w[i]\),价值为\(v[i]\)。每个物品只有一件,你可以选择不放入背包,或者放入背包。请问该如何选择物品,在能保证物品总重量不超过背包载重的条件时,使物品的价值总和最大。解:设\(dp[i][j]\)表示......
  • 其他背包问题简单总结
    其他背包问题简单总结1.完全背包0/1背包问题:已知有第\(i\)个物品的重量\(w_{i}\),价值\(v_{i}\),以及背包的总容量\(W\)。设DP状态\(f_{i,j}\)为在只能放前\(i\)个物品的情况下,容量为\(j\)的背包所能达到的最大总价值。而完全背包,即是在\(0/1\)背包问题中,将一个物......
  • [低代码平台] 自我总结:帆软▪简道云VS金蝶▪云之家
    云平台▪架构概述云平台架构基本包括以下几个关键组件:前端用户界面:提供一个可视化的、拖拽式的界面,让用户无需编码即可设计应用程序。后端服务:执行业务逻辑、数据处理和集成服务。数据存储和管理:用于存储用户数据和应用数据的数据库系统。API和集成层:使平台能够与外部系统和数......