重大发现,AQS加锁机制竟然跟Synchronized有惊人的相似( 二 )


3. 总结AQS跟Synchronized的加锁流程是一样的,都是通过同步队列和条件队列实现的,阻塞状态的线程被放到同步队列中,等待状态的线程被放到条件队列中,从条件队列唤醒的线程又被转移到同步队列末尾 , 一块竞争锁 。
看完AQS加锁流程,还没有人不懂AQS的?
下篇文章再讲一下AQS加锁具体的源码实现 。里面有很多精巧的设计,值得我们学习 。
比如:
为什么同步队列要设计成双向链表?而条件队列要设计成单链表?
为什么AQS加锁性能这么好(乐观锁CAS使用)?
同步队列和条件队列中节点怎么用一个对象实现?
释放锁后,怎么唤醒同步队列中线程?

我是「一灯架构」,如果本文对你有帮助,欢迎各位小伙伴点赞、评论和关注,感谢各位老铁,我们下期见

重大发现,AQS加锁机制竟然跟Synchronized有惊人的相似

文章插图
【重大发现,AQS加锁机制竟然跟Synchronized有惊人的相似】

推荐阅读