关于Synchronized研伸扩展
代码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(); } }