java核心
文章平均质量分 65
偶像java练习生
再小的帆也能远航
展开
-
java 可重入锁
公平锁,非公平锁 公平锁:非常公平,不能插队,必须先来后到! 非公平锁:非常不公平,可以插队,例子:一个线程3s 执行完,一个线程3h 执行完,先让3s 的执行,需要插队! Lock lock = new ReentrantLock(); public ReentrantLock() { sync = new NonfairSync(); } ReentranLock 默认是非公平锁 但是可以通过他的构造方法改变为公平锁: 如下 Lock lock = new ReentrantLock(true)原创 2021-06-22 22:46:25 · 498 阅读 · 3 评论 -
深入理解CAS
什么是CAS Unsafe 类 打断点发现this + 偏移量 不等 var5 则不自增,返回 var5 自旋锁: CAS : ABA 问题:(狸猫换太子) CAS : 比较当前工作内存中的值和主内存中的值,如果这个值是期望的,那么则执行操作,否则不执行!如果不是则一直循环 优点:自带原子性 缺点:循环比较耗时,一次性只能保证一个g共享变量的原子性,ABA 问题 ...原创 2021-06-17 22:45:25 · 337 阅读 · 0 评论