Java可重入锁与不可重入锁怎么写
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本文小编为大家详细介绍"Java可重入锁与不可重入锁怎么写",内容详细,步骤清晰,细节处理妥当,希望这篇"Java可重入锁与不可重入锁怎么写"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来
千家信息网最后更新 2025年12月02日Java可重入锁与不可重入锁怎么写
本文小编为大家详细介绍"Java可重入锁与不可重入锁怎么写",内容详细,步骤清晰,细节处理妥当,希望这篇"Java可重入锁与不可重入锁怎么写"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
不可重入锁
//不可重入锁public class LockTest {Lock lock=new Lock();public void a() throws InterruptedException {lock.lock(); b();lock.unlock(); }//不可重入 public void b() throws InterruptedException {lock.lock(); //........ lock.unlock(); }public static void main(String[] args) throws InterruptedException {LockTest lockTest=new LockTest();lockTest.a();lockTest.b(); } }class Lock{//是否占用 private boolean flag=false;//使用锁 public synchronized void lock() throws InterruptedException {while(flag){ wait(); }flag=true; }public synchronized void unlock(){flag=false; notify(); }}可重入锁
//可重入锁public class LockTest {ReLock lock=new ReLock();public void a() throws InterruptedException {lock.lock();System.out.println(lock.getCount()); b();lock.unlock();System.out.println(lock.getCount()); }//不可重入 public void b() throws InterruptedException {lock.lock();System.out.println(lock.getCount()); //........ lock.unlock();System.out.println(lock.getCount()); }public static void main(String[] args) throws InterruptedException {LockTest lockTest=new LockTest();lockTest.a();Thread.sleep(1000);System.out.println(lockTest.lock.getCount()); }}//可重入锁class ReLock{//是否占用 private boolean flag=false;private Thread LockedBY=null;//存储线程 private int count=0;//使用锁 public synchronized void lock() throws InterruptedException {Thread t=Thread.currentThread();while(flag&&LockedBY!=t){ wait(); }flag=true;LockedBY=t;count++; }public synchronized void unlock(){if(Thread.currentThread()==LockedBY){count--;if(count==0){flag=false; notify();LockedBY=null; } } }public int getCount() {return count; }}读到这里,这篇"Java可重入锁与不可重入锁怎么写"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
文章
内容
妥当
思路
新知
更多
步骤
知识
知识点
篇文章
线程
细节
行业
资讯
资讯频道
跟着
频道
处理
存储
学习
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网巨头到科技新星
网络安全大会海量数据
贵州乐迅网络技术
西南网络技术学院
武汉小程序软件开发
南京有的网络技术
学习网络安全的必要性
武汉互联网科技园
计算机软件开发是程序员吗
网络安全监管模式
数据库备份的重要性
在js里面进行数据库验证
四川dns怎么填服务器云主机
林子雨数据库实验室
安装mysql没有服务器配置
华3服务器知识
委托软件开发费如何做账
软件开发考研要考什么专业
数据库是进程么
网络安全文明快板
餐饮软件开发外包
学习网络安全的必要性
电脑网关连不到服务器怎么办
火绒网络技术
崇明区智能化网络技术开发操作
直播视频下载地瓜网络技术
服务器安装安全吗
电子科技大学工业互联网特色专业
电脑网络技术用什么笔记本
pgadmin数据库