![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java关键字源码
L# S@
这个作者很懒,什么都没留下…
展开
-
ReentrantLock底层相关原理笔记
synchronized 重量级的锁 会去调用操作系统的函数(1.6) JVM级别(1.7)阻塞操作 就是 让出CPUwait(完成线程通信)和notifyall关键字一起使用轻量级锁:底层调用Java代码(jdk)重量级锁:底层调用os的函数(1.6之前)整个AQS队列中的队头 Thread永远为null(空)持有锁的线程不在这个队列当中。交替执行:速度快 没有堵塞 没有队列的产生 jdk级别单个线程–交替执行它其实和队列无关–jdk级别解决同步问题ReentrantLock 和原创 2020-05-18 14:44:06 · 675 阅读 · 0 评论 -
JMM与volatile关键字
Java线程内存模型跟CPU缓存模型类似,是基于CPU缓存模型来建立的,Java的线程内存模型是标准化的,屏蔽了底层不同计算机的区别。JMM数据原子操作read(读取):从主内存读取数据load(载入):将主内存读取到的数据写入工作内存中user(使用):从工作内存读取数据来计算assign(赋值):将计算好的值重新赋值到工作内存中store(存储):将工作内存数据写入主内存write(写入):将store过去的变量值赋值给主内存中的变量lock(锁定):将主内存变量加锁,标识为线程独占原创 2020-05-15 21:40:28 · 195 阅读 · 0 评论 -
synchronized底层原理解析
Synchronizedpublic class TestSync { static L l=new L(); static ReentrantLock reentrantLock=new ReentrantLock(); public static void main(String[] args) { lockTest(); } pub...原创 2020-05-06 21:06:54 · 148 阅读 · 0 评论