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

原理:

内部锁记录: 重入锁使用一个内部的锁记录来跟踪当前持有锁的线程。

计数器: 每次线程获取锁时,计数器会增加,每次释放锁时,计数器会减少。

锁状态: 当计数器为 0 时,表示锁没有被任何线程持有;当计数器大于 0 时,表示锁被当前线程持有。

公平性: 重入锁可以选择公平性,确保按照线程请求锁的顺序来释放锁,避免线程饥饿。

特性:

可重入性: 同一个线程可以多次获取同一个锁,而不会阻塞自己。

公平性: 可以选择公平性,确保线程按照请求锁的顺序来释放锁。

锁降级: 可以将写锁降级为读锁,实现更灵活的并发控制。

锁中断: 支持中断正在等待锁的线程。

锁超时: 支持超时获取锁,如果指定时间内无法获取锁,则返回 false。

锁可关闭: 支持关闭锁,关闭锁后,所有正在等待锁的线程都会被唤醒。

本文作者:whitebear

本文链接:

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