synchronized和ReentrantLock可重入锁验证的操作方法
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,今天就跟大家聊聊有关synchronized和ReentrantLock可重入锁验证的操作方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一
千家信息网最后更新 2026年10月31日synchronized和ReentrantLock可重入锁验证的操作方法
今天就跟大家聊聊有关synchronized和ReentrantLock可重入锁验证的操作方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
一个线程已经获得了一把锁,则可以再多次重复获得这把已经获取的锁而不会发生死锁(可类比生活大门锁示例)。
前言
可重入锁又名递归锁,是指在同一个线程在外层方法获取锁的时候,再进入该线程的内层方法会自动获取锁(前提,锁对象得是同一个对象),不会因为之前已经获取过还没释放而阻塞。Java中ReentrantLock和synchronized都是可重入锁,可重入锁的一个优点是可一定程度避免死锁。
一、synchronized可重入验证
package com.lau.javabase.lock;/** * 隐式锁 */public class ReenterSynchronizedTest { public synchronized void print(){ System.out.println("外层调用..."); //中层调用 print2(); //内层调用 print3(); } public synchronized void print2(){ System.out.println("中层调用..."); } public synchronized void print3(){ System.out.println("内层调用..."); } public static void main(String[] args) { ReenterSynchronizedTest test = new ReenterSynchronizedTest();// test.print(); test.print4(); } /** * 同一个线程可以多次获得同一把锁 */ public void print4(){ synchronized (this){ System.out.println("外层调用呀..."); synchronized (this){ System.out.println("中层调用呀..."); synchronized (this){ System.out.println("内层调用呀..."); } } } }}输出:
外层调用呀...中层调用呀...内层调用呀...
二、ReenTrantLock可重入性验证
package com.lau.javabase.lock;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * 显示锁 */public class ReenterLockTest { public static void main(String[] args) { ReenterLockTest test = new ReenterLockTest(); test.print(); new Thread(() -> test.print2(),"t").start(); } private Lock lock = new ReentrantLock(); /** * 同一个线程可以多次获得同一把锁 */ public void print(){ try{ lock.lock(); lock.lock(); System.out.println("外层调用"); try{ lock.lock(); System.out.println("中层调用"); try{ lock.lock(); System.out.println("内层调用"); } finally { lock.unlock(); } } finally { lock.unlock(); } } finally { lock.unlock();// lock.unlock(); } } public void print2(){ try{ lock.lock(); System.out.println("come on!"); } finally { lock.unlock(); } }}输出:
外层调用中层调用内层调用
看完上述内容,你们对synchronized和ReentrantLock可重入锁验证的操作方法有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
内层
中层
外层
线程
方法
验证
内容
对象
死锁
输出
优点
前提
前言
又名
得了
时候
更多
知识
示例
程度
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技园
南京欣网互联网络科技有限公司
云之行互联网科技
互联网金融公司科技
猪兼强互联网科技
居家互联网科技有限公司
佩信高科技互联网
富国互联网科技创新基金
天速互联网络科技有限公司
创业天下互联网科技有限公司
互联网和黑科技的看法
河南住房之家互联网科技
伊宁互联网科技做什么的
梅州GM互联网络科技有限公司
富国互联网金融科技混合基金
厦门江牛科技互联网
南京一网一红互联网科技有限公司
中国新注册互联网科技
数字科技和互联网金融哪个好
瑞安市蟠桃会互联网科技有限公司
科技互联网
广州万易互联网科技有限公司
互联网科技公司的优势
科技与互联网
天扬科技互联网广告
华服互联网科技官网
互联网软件和科技
乌鲁木齐新华智原互联网科技学校
唯美互联网科技
互联网科技手抄报图片