java - 为什么 Thread.interrupt() 不能中断试图获取锁的线程

标签 java multithreading interrupt synchronized

Thinking in Java 一书中写道,Thread.interrupt() 不能中断正在尝试获取同步锁的线程,我想知道为什么?

最佳答案

只有声明抛出 InterruptedException 时,阻塞操作才能被中断。显然,synchronized block 没有声明它,因此不可能在线程等待获取锁时中断它。

或者,您可以使用显式锁并调用 Lock.lockInterruptibly()

关于java - 为什么 Thread.interrupt() 不能中断试图获取锁的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32024436/

相关文章:

java - 如何在sql表中存储jsp文件并执行它?

java - 通过 OpenCV 或 JavaCV 进行模板匹配

multithreading - 对自旋锁感到困惑

java - 加入超时的多个线程

listener - 对于相同的技术,轮询和事件驱动的编程是否有不同的用语?

java - 如何在多个线程中运行一个 jar 文件?

java - Android 项目中的 ClassNotFoundException 仅在我的 PC 上

C++ 单线程工作,在新线程上它调用 "abort()"

kernel - 什么是中断线程?

c++ - 在 mac 上编译时,nullptr 未在范围内声明