Lock类的总结

Lock

主要有4个方法:lock()、tryLock()、tryLock(long time, TimeUnit unit)和lockInterruptibly()。注意Lock不像synchronized一样在异常时自动释放锁,因此需要在finally中解锁——unlock()。

  • lock()
    该方法不能被中断,一旦陷入死锁就会陷入永久等待。
  • tryLock()
    用来尝试获取锁,如当前锁没有被其他线程占用,则获取成功返回true,否则返回false代表获取锁失败。
  • tryLock(long time, TimeUnit unit)
    同上,区别就在于设置超时时间。
/**
 * 用tryLock()方法避免死锁
 */
public class ReentrantLockByTryLock implements Runnable {

    private static final Lock reentrantLock1 = new 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章