假设在我的代码中某处我写了一个空synchronized
块:
synchronized(obj){
//No code here
}
因此,由于同步块不包含任何代码,JIT 编译器是否会通过不锁定来优化它,obj
因为它没有用?
Java 编译器会执行类似的技巧,例如锁粗化,但是这个同步块也会被优化掉吗?
编辑:
根据 assylias 的观点,
synchronized(new Object()){
//empty block
}
JIT 编译器现在是否能够优化这一点,因为我正在使用一个不会逃避我的方法的对象?