JVM学习笔记——内存模型篇( 七 )

  1. 减少锁的粒度
/*将一个锁拆分为多个锁提高并发度例如:LinkedBlockingQueue 入队和出队使用不同的锁 , 相对于LinkedBlockingArray只有一个锁效率要高*/
  1. 锁粗化
/*多次循环进入同步块不如同步块内多次循环另外 JVM 可能会做如下优化 , 把多次 append 的加锁操作粗化为一次(因为都是对同一个对象加锁 , 没必要重入多次)例如:new StringBuffer().append("a").append("b").append("c");*/
  1. 锁消除
/*JVM 会进行代码的逃逸分析 , 例如某个加锁对象是方法内局部变量 , 不会被其它线程所访问到 , 这时候就会被即时编译器忽略掉所有同步操作 。*/
  1. 读写分离
/*CopyOnWriteArrayListConyOnWriteSet*/结束语到这里我们JVM的内存模型篇就结束了 , 希望能为你带来帮助~
附录该文章属于学习内容 , 具体参考B站黑马程序员满老师的JVM完整教程
这里附上视频链接:01-JMM-概述_哔哩哔哩_bilibili

经验总结扩展阅读