AQS中可重入锁ReentrantLock源码一加锁过程
发布日期:2021-05-10 22:30:16 浏览次数:23 分类:精选文章

本文共 238 字,大约阅读时间需要 1 分钟。

ReentrantLock的加锁流程可概括为以下步骤:

  • 尝试加锁(tryAcquire):首先,线程尝试通过原子操作(CAS)直接获取锁。如果成功,直接返回;否则继续下一步。

  • 创建节点并入队:如果尝试加锁未成功,线程创建一个节点(包含当前线程和锁状态),将其添加到CLH双向链表队列的尾部。

  • 等待或唤醒:线程进入死循环,重复尝试获取锁。如果成功,唤醒前一个在队列中等待的线程,并标记当前线程被打断。

  • 这种机制确保线程采用FIFO策略,避免高优先级线程霸占锁,确保资源利用率高。

    上一篇:AQS中可重入锁ReentrantLock源码一释放锁过程
    下一篇:ReentrantLock初认知

    发表评论

    最新留言

    网站不错 人气很旺了 加油
    [***.192.178.218]2025年04月11日 03时18分21秒