什么是锁消除和锁粗化? 迷失技术de小猪 4个月前 并发编程 47 锁消除:指虚拟机即时编译器在运行时,对一些代码上要求同步,但被 检测到不可能存在共享数据竞争的锁进行消除。主要根据逃逸分析。程序员怎么会在明知道不存在数据竞争的情况下使用同步呢?很多不是程序员自己加入的。 锁粗化:原则上,同步块的作用范围要尽量小。但是如果一系列的连续 操作都对同一个对象反复加锁和解锁,甚至加锁操作在循环体内,频繁 地进行互斥同步操作也会导致不必要的性能损耗。锁粗化就是增大锁的作用域。 回复 我来回复 暂无回复内容 请 登录 或者 注册 后回复。 相关问题 请谈谈 ThreadLocal 是怎么解决并发安全的? 4个月前 0 84 很多人都说要慎用 ThreadLocal,谈谈你的理解,使用 ThreadLocal 需要注意些什么? 4个月前 0 85 线程池中的线程是怎么创建的?是一开始就随着线程池的启动创建好的吗? 4个月前 0 88 除了 ReetrantLock,你还接触过 JUC 中的哪些并发工具? 4个月前 0 46 既然 volatile 能够保证线程间的变量可见性,是不是就意味着基于 volatile 变量的运算就是并发安全的? 4个月前 0 58 请尽可能详尽地对比下 Synchronized 和 ReentrantLock 的异同。 4个月前 0 79 Java 中的线程池是如何实现的? 4个月前 0 81 请谈谈 volatile 有什么特点,为什么它能保证变量对所有线程的可见性? 4个月前 0 89 请对比下 volatile 对比 Synchronized 的异同。 4个月前 0 90 请谈谈 AQS 框架是怎么回事儿? 4个月前 0 69