Java可重入锁与不可重入锁怎么写
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,本文小编为大家详细介绍"Java可重入锁与不可重入锁怎么写",内容详细,步骤清晰,细节处理妥当,希望这篇"Java可重入锁与不可重入锁怎么写"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来
千家信息网最后更新 2025年02月03日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安全错误
数据库的锁怎样保障安全
网络安全领域以颁布哪些法律
元宇宙与网络安全相融合
江苏省网络安全管理的问题及原因
数据库被删要比特币
武汉科瑞技术网络安全
架设服务器挖掘虚拟货币啥意思
我的世界服务器崩溃的视频
dayz如何重置服务器
数据库分析精选题
七类人不适合学计算机网络技术
软件开发项目工作量确定
2010远程连接数据库
数据库查询分页技术
诛仙里的服务器叫什么
益阳软件开发培训排名
南京专业医疗健康软件开发
微信服务器存储
工业网络技术冷门吗
手机wps编辑表格数据库
mysql数据库建站
景德镇物理服务器价格多少
只狼npc数据库
腾讯文档表格数据库
铁路网络安全通报整改
网络安全有多少只股票
怎么清除数据库
腾讯免费云服务器近期价格
南阳crm软件开发价格
如何查看软件开发平台
dota2 连不上服务器