ReentrantLock 的使用方法

本文介绍了一个可重入的互斥锁ReentrantLock的基本行为和语义。ReentrantLock提供了比synchronized更强大的功能,详细解释了如何使用lock和unlock方法进行资源保护,以及如何检查线程是否持有锁。

一个可重入的互斥锁 Lock,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但功能更强大。

ReentrantLock 将由最近成功获得锁,并且还没有释放该锁的线程所拥有。当锁没有被另一个线程所拥有时,调用lock 的线程将成功获取该锁并返回。如果当前线程已经拥有该锁,此方法将立即返回。可以使用 isHeldByCurrentThread() getHoldCount() 方法来检查此情况是否发生。




Example:


 ReentrantLock localReentrantLock = this.lock;

    localReentrantLock.lock();
    try
    {
      Object[] arrayOfObject2 = getArray();
      int i = arrayOfObject2.length;
      Object[] arrayOfObject3 = Arrays.copyOf(arrayOfObject2, i + arrayOfObject1.length);
      System.arraycopy(arrayOfObject1, 0, arrayOfObject3, i, arrayOfObject1.length);
      setArray(arrayOfObject3);
      int j = 1;
      return j;
    }
    finally
    {
      localReentrantLock.unlock();

    }



原文地址:http://www.taotuike.cn


狗粮排行榜

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值