Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

死锁分析 PDF 下载


分享到:
时间:2020-05-10 14:55来源:http://www.java1234.com 作者:小锋  侵权举报
死锁分析 PDF 下载
失效链接处理
死锁分析 PDF 下载

本站整理下载:
 
相关截图:
 
主要内容:

在任何地方都可以线程切换,甚至在一句语句中间
要尽量设想对自己最不利的情况 
 
死锁产生的四个条件
互斥等待:一段代码或操作同时只能有一个人做,只有抢到锁的一个人可以操作,其它人必须等待第一个人做完
hold and wait: 持有一个锁等待另外一个锁
循环等待:A 持有锁等待B的锁,B持有锁等待A的锁。
无法剥夺的等待:
 
通过代码实现一个死锁
public class AccountService {
 
void transfer(Account from,Account to,int amount) {
 
synchronized(from) {
synchronized(to) {
from.setAmount(from.getAmount()-amount);
to.setAmount(to.getAmount()+amount);
}
}
 
}
}
 
死锁防止:
破除互斥等待 ------一般无法破除
破除hold  and  wait ------------ 一次性获取所有资源
破除循环等待--------------- 按顺序获取资源(判断accountId  先锁id比较小的)
破除无法剥夺的等待----------- 加入超时


 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐