synchronized 细化 : 锁的代码越少越好,避开那些不相关的业务逻辑代码
synchronized 粗化 : 多次加锁操作在JVM内部也是种消耗,如果多个加锁可以合并为一个锁,就可减少不必要的开销
分段锁,分段锁也并非一种实际的锁,而是一种思想;ConcurrentHashMap是学习分段锁的最好实践。
主要是将大对象拆成小对象,然后对大对象的加锁操作变成对小对象加锁,增加了并行度
锁定某个对象o ,如果o的属性发生改变,不影响锁的使用
但是如果o变成另一个对象,则锁定的对象发生改变
应该避免将锁定对象的引用变成两外的对象
final Object o = new Object();