编辑
2024-08-26
面试题库
0
请注意,本文编写于 149 天前,最后修改于 149 天前,其中某些信息可能已经过时。

可中断锁:

允许线程在等待锁的过程中被中断。这意味着线程可以通过调用 interrupt() 方法来停止等待并执行其他任务。

Java 的 ReentrantLock 是可中断锁的典型例子。它提供了 lockInterruptibly() 方法,该方法会阻塞当前线程直到获取到锁,但如果线程在等待过程中被中断,它会抛出 InterruptedException 并立即返回。

不可中断锁:

不允许线程在等待锁的过程中被中断。线程只能等待直到获取到锁或者永远阻塞下去。

Java 的 synchronized 关键字是不可中断锁的典型例子。一旦线程尝试获取 synchronized 锁,它就会一直等待直到锁被释放,即使其他线程调用了 interrupt() 方法。

本文作者:whitebear

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!