![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
锁
文章平均质量分 70
immdwbs
这个作者很懒,什么都没留下…
展开
-
Java中的锁
1、Synchronized的不足(1)试图获取锁时无法设置超时,也无法响应中断(2)不够灵活,加锁解锁的方式单一(与读写锁对比)(3)无法法知道是否成功获取了锁2、Lock接口(1)lock()与unlock() 用于获取锁释放锁,作用和synchronized作用相同,不同点在于发生异常时synchronized会自动释放锁,而lock()必须通过unlock()手动释放(2)tryLock():Boolean立刻尝试获取锁,获取到返回true,未获取到返回false;如果.原创 2021-11-02 18:09:21 · 156 阅读 · 0 评论 -
死锁及相关检测与处理
1、发生死锁的4个必要条件(1)互斥条件,一个资源只能被一个线程持有(2)请求保持条件,保持自己资源的同时请求其他资源(3)不剥夺条件,不存在外界的介入,将资源从线程中剥夺。(4)循环等待,构成环形依赖2、死锁实例:银行转账3、死锁定位(1)利用命令行jstack进入${JAVA_HOM}/bin,运行jps获取进程id,通过jstack [进程ID]查看检测到各个线程的状态:检测到死锁信息如下:(2)利用代码:Thread...原创 2021-10-24 12:02:41 · 330 阅读 · 0 评论 -
synchronized解析
1、作用:保证在同一个时刻只能有一个线程运行该段代码(synchronized修饰的代码段或方法),以保证并发安全。2、用法:一个类可以有多个的实例对象,一个类只有一个class对象用于描述这个类,根据锁的对象的类型(普通实例对象,class对象)将用法分为对象锁和类锁。(1)对象锁:锁的对象为普通实例对象,两种形式:(method1,method2)方法锁(非static方法的锁对象为this即当前实例对象)和同步代码块锁(指定的锁对象)(2)类锁:锁的对象为class对象,两种.原创 2021-10-17 17:56:32 · 81 阅读 · 0 评论