代码1 synchronized方法
synchronized void method(){
..........
}
代码2 synchronized代码块
synchronized (obj){
.....
}
无论哪种都可以看作在”{“处获取锁,在”}”处释放锁。
代码3 显示处理锁的方法
void method() {
lock();
....
unlock();
}
lock方法和unlock方法之间不能存在return,否则锁无法被释放,不设置return出现异常处理也是同样会出现该问题
代码4 调用lock方法之后,无论执行什么操作,都会调用unlock方法
void method() {
lock();
try{
...
} finally {
unlock();
}
}