
java并发编程的艺术
文章平均质量分 52
zhtttylz
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
synchronized的实现原理以及锁的升级降级
java中锁的表现形式 对于普通的方法,锁是当前的实例对象 对于静态同步方法,锁是当前类的class对象 对于同步代码块,锁是代码块中的对象 java对象头 synchronized所使用的锁是存放在java的对象头中的,如果对象是数组类型,虚拟机使用3个字宽存储对象头,如果对象是非数组类型,则使用2字宽来存储对象头 锁的升级 首先要了解偏向锁和轻量级锁,偏向锁就是在不存在大量线程...原创 2018-11-13 15:56:03 · 2692 阅读 · 0 评论 -
volatile的实现原理
volatile关键字的作用 volatile是轻量级的synchronized,用于保证共享变量在多线程中的可见性,即一个线程修改了volatile标记的值的时候,另外一个线程可以读到这个值,但是要注意,volatile不能保证复合操作的原子性 cpu的一些术语 一般状况下的线程读写操作 cpu为了提高处理速度,不会直接与内存进行通信,而是现将内存中的数据读取到线程内部缓存后在进行...原创 2018-11-14 17:13:19 · 223 阅读 · 0 评论 -
简单理解什么是happens-before
什么是happens-before 在程序运行过程中,以写操作为例:所有对共享变量的变成都会在线程的本地缓存中进行修改,然后在拷贝回回主存以跨越内存栅栏,跨越内存栅栏的顺序称为happens-before 什么是内存栅栏 内存栅栏就是指从线程本地缓存到主存,或者主存到线程本地缓存之间的拷贝操作 ...原创 2018-12-03 09:58:27 · 443 阅读 · 0 评论 -
java并发—AQS原理
AQS的经典问题 AQS的原理是什么 CountDownLatch和CyclicBarrier了解吗,两者的区别是什么? 用过Semaphore吗? 可以具体说一下嘛? AQS的思维导图原创 2018-12-31 16:03:50 · 198 阅读 · 0 评论