jvm
文章平均质量分 78
迈克白
我们靠的是一行行代码换取一碗碗的米饭,偶尔饭里有点菜甚至是肉,令人相当地兴奋,我并不嫉妒或羡慕别人的山珍海味,那是因为别人比我有能力,所以TA们就应该吃着龙虾鲍鱼,我吃着自己辛苦换来的米饭,幸福感也是挺高的,尽管老大不小的,可我依然是有梦想的,并且充满狼性,但光有梦想与狼性是不够的,还要有能力与执行力,我一直在努力,期待有朝一日可以变得更好更强。
展开
-
AQS知识点整理
即AbstractQueuedSynchronizer,队列同步器,是用来构建锁或者其他同步器组件的重量级基础框架及整个JUC体系的基石,通过内置的FIFO队列来完成资源获取线程的排队工作,并通过一个int类型的变量表示持有锁的状态;:AQS使用一个violatile的int类型的成员变量来表示同步状态,通过内置的FIFO队列来完成资源获取的排队工作,将每条要抢占资源的线程封装成一个Node节点来完成锁的分配,通过CAS完成对state值的修改;优点:所有的线程都能得到资源,不会饿死在队列中。原创 2023-06-11 01:24:13 · 97 阅读 · 0 评论 -
什么是CAS?
CAS底层用到的Unsafe类,Unsafe是CAS的核心类,Java方法无法直接访问底层系统,需要通过本地(native)方法来访问,Usafe相当于一个后门,基于该类可以直接操作特定内存的数据。因为CAS需要在操作值的时候检查下值有没有发生变化,如果没有发生变化则更新,但是如果一个值原来是A,变成了B,又变成了A,那么使用CAS进行检查时会发现它的值没有发生变化,但是实际上却变化了。它的功能是判断内存某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子的。类来保证引用对象之间的原子性,原创 2023-06-11 00:14:25 · 342 阅读 · 0 评论