Java AQS 源码分析之一句话概括AQS

        AQS 其实是个抽象模板工具类,从AQS出发衍生出很多工具类,但基于AQS的直接子类包括

可重入锁和读写锁,JAVA1.8 后又加入了邮戳锁。

        AQS 是一些列高并发锁的统称,其产生原因是当并发增加到一定程度时,自旋锁会产生严重问题,比如CPU飙升甚至死机。这是因为现代的CPU都是多核的,自旋锁的含义是死循环不断的查询和尝试锁,循环执行加锁代码,这样会导致线程全部进入死循环。从而导致系统的主宰CPU被耗尽,当然在并发量一般时一般不会如此。

        AQS就是解决这类问题的。解决方法非常简单就是排队。线程尝试锁失败就停止自旋,然后排队,这样就不会将CPU困在死循环里面了。AQS将队列分成两个,一个是抢占锁的队列,即同步队列,一个是条件队列,条件队列里面的线程只有等到某个事件发生时才会转移到同步队列,等待获取锁。

        AQS 具体源码分析请参考博主录制的分析视频:https://edu.51cto.com/course/28587.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值