可重入锁是什么和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();

 

相关文章
|
3月前
|
Java
Java中ReentrantLock中 lock.lock(),加锁源码分析
Java中ReentrantLock中 lock.lock(),加锁源码分析
27 0
|
3月前
多线程售票demo,用ReentrantLock实现
多线程售票demo,用ReentrantLock实现
|
10月前
|
设计模式 Java API
为什么Java有了synchronized之后还造了Lock锁这个轮子?
众所周知,synchronized和Lock锁是java并发变成中两大利器。但是为什么Java有了synchronized之后还是提供了Lock接口这个api,难道仅仅只是重复造了轮子这么简单么?本文就来探讨一下这个问题。
|
Java
【Java】synchronized、ReentrantLock 两种锁区分
【Java】synchronized、ReentrantLock 两种锁区分
69 1
可重入读写锁ReentrantReadWriteLock的demo使用
可重入读写锁ReentrantReadWriteLock的demo使用
|
安全 Java
一天一个 JUC 工具类 Lock 和 Condition
当谈到Java多线程编程时,我们不可避免地需要处理并发问题。为此Java提供了一个强大的工具包——java.util.concurrent(JUC)
|
程序员 Java 安全
【JUC基础】03. 几段代码看懂synchronized
程序员经常听到“并发锁”这个名词,而且实际项目中也确实避免不了要加锁。那么什么是锁?锁的是什么?今天文章从8个有意思的案例,彻底弄清这两个问题。
241 0
【JUC基础】03. 几段代码看懂synchronized
|
Java C++
Java并发 --- CAS解析(对比synchronized )
Java并发 --- CAS解析(对比synchronized )
|
安全 Java 程序员
线程进阶 --- synchronized 和 ReentrantLock
线程进阶 --- synchronized 和 ReentrantLock
93 0