可中断锁:
允许线程在等待锁的过程中被中断。这意味着线程可以通过调用 interrupt() 方法来停止等待并执行其他任务。
Java 的 ReentrantLock 是可中断锁的典型例子。它提供了 lockInterruptibly() 方法,该方法会阻塞当前线程直到获取到锁,但如果线程在等待过程中被中断,它会抛出 InterruptedException 并立即返回。
不可中断锁:
不允许线程在等待锁的过程中被中断。线程只能等待直到获取到锁或者永远阻塞下去。
Java 的 synchronized 关键字是不可中断锁的典型例子。一旦线程尝试获取 synchronized 锁,它就会一直等待直到锁被释放,即使其他线程调用了 interrupt() 方法。
本文作者:whitebear
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!