1、对于所对象的选择
我们在选择synchronized 进行代码块锁定时,选择的锁对象应该是new Object,还是new Object[0], 或者是new byte[0],其实在Android的源码里面选择new Object[0],因为我们打开字节码发现new Object 需要7行命令,而new byte[0]需要3行,new Object[0]需要4行,相对应的行数少执行快,但选择new Object[0] 是兼顾代码可读性。
2、JDK和Android Framework 中synchronized的区别
JDK里面synchronized一般是修饰方法,Android Framework一般修饰代码块。