转发:
http://www.java265.com/JavaMianJing/202205/16538751313564.html
下文笔者讲述避免死锁的方法分享,如下所示:
死锁会使程序处于无法正常的对外提供服务状态, 下文笔者将讲述死锁发生的必备条件和避免死锁的方法
死锁发生的必备条件
互斥条件:
一个资源每次只能被一个进程使用
请求与保持条件:
一个进程因请求资源而阻塞时,对已获得的资源保持不放
不剥夺条件:
进程已获得的资源,在末使用完之前,不能强行剥夺
循环等待条件:
若干进程之间形成一种头尾相接的循环等待资源关系
避免死锁的方法
方法1
加锁顺序(线程按照一定的顺序加锁)
方法2:
加锁超时时间(线程尝试获取锁的时候加上一定的时间,
超过时间则放弃对该锁的请求,并释放自己占有的锁)
来源:https://www.cnblogs.com/java265/p/16325787.html
本站部分图文来源于网络,如有侵权请联系删除。