锁的内容
1、普通同步方法,锁对象,因为其他方法中可能对对象的属性进行操作,所以是直接锁定对象的,该对象的其他sync方法也不能用
public synchronized void synMethod() {
//方法体
}
2、锁静态方法,锁当前类的CLASS对象
3、锁方法块
public int synMethod(int a1){
synchronized(a1) {
//一次只能有一个线程进入
}
}
原理
monitorenter与monitorexit 对应
4不要用String常量做锁
网友评论