java - 如果在 sleep 线程上调用interrupt()会发生什么?

标签 java multithreading thread-sleep interrupted-exception

我有一个线程,在run()上我调用sleep()。如果我中断这个线程会发生什么?

MyThread extends Thread{
    public void run(){
          try{
             sleep(1000000);
          } catch(InterruptedException e) {//}
    }    
}

我想澄清以下几点:

  • 如果线程尚未启动,调用 interrupt() 不会执行任何操作,对吧?
  • 如果线程已启动,并且正在 hibernate ,则在 hibernate 时调用 interrupt() 将抛出 InterruptedException;因此,转到 catch() 然后结束线程,对吧?

最佳答案

1) Thread.interrupt API:中断不活动的线程不需要产生任何效果。

2)在您的示例中,被中断的线程将进入 catch block ,然后离开 run 方法并终止

关于java - 如果在 sleep 线程上调用interrupt()会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15225579/

相关文章:

java - thread.sleep(long millis) 在 Android 中不起作用

java - 返回 Java 数组与集合

java - 为什么ExecutorService接口(interface)没有实现AutoCloseable?

Java加载一个DLL,该DLL从JNI中的另一个DLL导出方法

java - 用于 ObjectArray 的 Guava jar(Google 核心库),在 log4j 上打印大量消息

c++ - 在 C++11 中,如何在捕获到信号时立即离开函数?

rust - Rust lang thread::sleep()在Windows上的游戏循环期间休眠几乎是指定时间的两倍

java - Thread.sleep() VS Executor.scheduleWithFixedDelay()

java - Android ViewGroup.setScaleX() 导致 View 被裁剪

java - 求平均数的函数法