java并发编程实战-第16章-java内存模型(JMM)

java并发编程实战-第16章-java内存模型(JMM)

16 java内存模型(JMM)

对理解高并发很有用

参考:

《深入理解的java虚拟机》第5部分 高效并发

jsr133中文版 : http://ifeve.com/jsr133-cn/

理解以下概念:

主内存和工作内存:对比计算机系统的内存和cpu的高速缓存

内存之间的相互工作:lock unlock  (read  load)  use assign (store write)

1、重排序:单个线程是不会发生重排序的,发生在多个线程之间的交互

2、内存删栏:

   http://ifeve.com/memory-barriers-or-fences/

   http://ifeve.com/jmm-cookbook-mb/

   

   

3、happy-before 语义  

4、volatile的可见性:读之前刷新,写完立刻同步到内存 

    final的可见性:因为是不可变的,所以可以多个线程安全访问

    

    

    

锁的优化:

自旋锁、锁消除、锁粗化、轻量级锁、锁偏向等

轻量级锁参考:http://zhouchaofei2010.iteye.com/admin/blogs/2242760

猜你喜欢

转载自zhouchaofei2010.iteye.com/blog/2243296