1.java的锁是加载到对象上的,如果加到方法上就是对当前对象同步,如果加载静态方法上就是对类对象同步
2.一个线程若获得对象A的锁,则其他线程在访问A的所有同步方法时都会被阻塞,但是可以访问A的非同步方法,所以如果属性在非同步方法中修改的话也会有现成安全问题
3.若果是同步代码块,则需要指明一个对象用来加锁,Synchronized(object){...} 当前的锁就是object对象
1.java的锁是加载到对象上的,如果加到方法上就是对当前对象同步,如果加载静态方法上就是对类对象同步
2.一个线程若获得对象A的锁,则其他线程在访问A的所有同步方法时都会被阻塞,但是可以访问A的非同步方法,所以如果属性在非同步方法中修改的话也会有现成安全问题
3.若果是同步代码块,则需要指明一个对象用来加锁,Synchronized(object){...} 当前的锁就是object对象