synchronized的不同写法会影响性能效率
public synchronized void test() {
//......
}
小于
public void test() {
synchronized(this) {
}
}
小于
private byte[ ] lock=new byte[1];
public void test() {
synchronized(object) {
}
}
同步函数效率低于this是因为即使获得了锁进入方法还需要消耗时间,this锁在获得锁的时候已经进入了方法中,this锁效率有地于自定义对象锁,所以对象越小越好,所以用byte,造一个字节的byte对象最小,一般工作中用这种方法。