
Java关键字源码
L# S@
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ReentrantLock底层相关原理笔记
synchronized 重量级的锁 会去调用操作系统的函数(1.6) JVM级别(1.7) 阻塞操作 就是 让出CPU wait(完成线程通信)和notifyall关键字一起使用 轻量级锁:底层调用Java代码(jdk) 重量级锁:底层调用os的函数(1.6之前) 整个AQS队列中的队头 Thread永远为null(空) 持有锁的线程不在这个队列当中。 交替执行:速度快 没有堵塞 没有队列的产生 jdk级别 单个线程–交替执行它其实和队列无关–jdk级别解决同步问题 ReentrantLock 和原创 2020-05-18 14:44:06 · 732 阅读 · 0 评论 -
JMM与volatile关键字
Java线程内存模型跟CPU缓存模型类似,是基于CPU缓存模型来建立的,Java的线程内存模型是标准化的,屏蔽了底层不同计算机的区别。 JMM数据原子操作 read(读取):从主内存读取数据 load(载入):将主内存读取到的数据写入工作内存中 user(使用):从工作内存读取数据来计算 assign(赋值):将计算好的值重新赋值到工作内存中 store(存储):将工作内存数据写入主内存 write(写入):将store过去的变量值赋值给主内存中的变量 lock(锁定):将主内存变量加锁,标识为线程独占原创 2020-05-15 21:40:28 · 235 阅读 · 0 评论 -
synchronized底层原理解析
Synchronized public 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 · 208 阅读 · 0 评论