关于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();
    }
}

  

 

posted @ 2019-07-03 09:46  咯咯呀  阅读(129)  评论(0编辑  收藏  举报