zoukankan      html  css  js  c++  java
  • 什么是可重入锁(ReentrantLock)?

    举例来说明锁的可重入性

    public class UnReentrant{

    Lock lock = new Lock();

    public void outer(){

    lock.lock();

    inner();

    lock.unlock();

    }

    public void inner(){

    lock.lock();

    //do something

    lock.unlock();

    }

    }

    outer 中调用了 inner,outer 先锁住了 lock,这样 inner 就不能再获取 lock。其

    实调用 outer 的线程已经获取了 lock 锁,但是不能在 inner 中重复利用已经获取

    的锁资源,这种锁即称之为 不可重入可重入就意味着:线程可以进入任何一个它

    已经拥有的锁所同步着的代码块。

    synchronized、ReentrantLock 都是可重入的锁,可重入锁相对来说简化了并发

    编程的开发。

  • 相关阅读:
    暴力,DFS,比较字符串
    暴力求解最大乘积
    油田!
    八皇后的问题
    巡逻的机器人
    骑士的移动
    二叉树遍历
    新兵训练(=@__@=)
    打牌~~~
    八皇后
  • 原文地址:https://www.cnblogs.com/programb/p/13020290.html
Copyright © 2011-2022 走看看