可重入锁是什么和demo

简介: 可重入锁是什么和demo

可重入锁

reentrantlock是独占锁且可重入的 synchronized 也可以重入

可重入意思就是这个线程已经获取锁了,你再获取该锁还能获取 获取的还是原来的锁 不会出现问题 可以降低编程难度

代码如下:

new Thread(new Runnable() {
    @Override
    public void run() {
        synchronized (this) {
            System.out.println("第1次获取锁,这个锁是:" + this);
            int index = 1;
            while (true) {
                synchronized (this) {
                    System.out.println("第" + (++index) + "次获取锁,这个锁是:" + this);
                }
                if (index == 10) {
                    break;
                }
            }
        }
    }
}).start();

 

相关文章
|
2月前
|
Java
Java中ReentrantLock中部分加锁取消节点源码分析
Java中ReentrantLock中部分加锁取消节点源码分析
37 13
|
2月前
|
Java
Java中ReentrantLock中 lock.lock(),加锁源码分析
Java中ReentrantLock中 lock.lock(),加锁源码分析
24 0
|
8月前
|
供应链 安全 Java
ReentrantLock源码解析
谈到多线程,就不避开锁(Lock),jdk中已经为我们提供了好几种锁的实现,已经足以满足我们大部分的需求了,今天我们就来看下最常用的ReentrantLock的实现。
40 0
|
2月前
多线程售票demo,用ReentrantLock实现
多线程售票demo,用ReentrantLock实现
|
9月前
|
设计模式 Java API
为什么Java有了synchronized之后还造了Lock锁这个轮子?
众所周知,synchronized和Lock锁是java并发变成中两大利器。但是为什么Java有了synchronized之后还是提供了Lock接口这个api,难道仅仅只是重复造了轮子这么简单么?本文就来探讨一下这个问题。
|
12月前
|
算法
可重入读写锁ReentrantReadWriteLock的demo使用
可重入读写锁ReentrantReadWriteLock的demo使用
|
程序员 Java 安全
【JUC基础】03. 几段代码看懂synchronized
程序员经常听到“并发锁”这个名词,而且实际项目中也确实避免不了要加锁。那么什么是锁?锁的是什么?今天文章从8个有意思的案例,彻底弄清这两个问题。
236 0
【JUC基础】03. 几段代码看懂synchronized
|
Java C++
Java并发 --- CAS解析(对比synchronized )
Java并发 --- CAS解析(对比synchronized )
|
Java 测试技术 API
Java面试题之synchronized平台级锁和Lock实现的锁区别
目录 一、Lock类层次结构及相关API 1、Lock类层级结构 2、Lock接口相关API 3、关于Condition 二、synchronized VS Lock 1、synchronized实现的锁优缺点 2、Lock实现的锁优缺点 三、手撸一把简单的ReentrantLock 1、ReentrantLock实现简单流程 2、代码示例 3、测试用例
Java面试题之synchronized平台级锁和Lock实现的锁区别