JAVA--锁

来源:互联网 发布:柔道 知乎 编辑:程序博客网 时间:2024/06/06 06:39

ReentrantLock 和synchronized

1、防止重复执行

     

ReentrantLock lock = new ReentrantLock();  

lock.tryLock()
2、同步

lock.lock();  try {      //操作  } finally {      lock.unlock();  }  

3、等待锁释放

   if (lock.tryLock(5, TimeUnit.SECONDS)) {              try {              //操作          } finally {              lock.unlock();          }      }  
4、可中断锁

  

lock.lockInterruptibly();  

5、学习小记

    class锁和对象锁,方法被class锁住的时候,对象锁可以继续执行。  

    抛出异常时,线程自动释放锁。

    可以使用return停止当前执行的线程

   volatile 是轻量级同步的!具有synchronized的一半功能。

原创粉丝点击