在Java程序设计中如何避免死锁?

 我来答
可果农业
推荐于2016-12-05 · 关注养殖、关注种植、分享经验、技术!
可果农业
采纳数:4 获赞数:23

向TA提问 私信TA
展开全部
1、在程序中尽量使用开放调用。依赖于开放调用的程序,相比于那些在持有锁的时候还调用外部方法的程序,更容易进行死锁自由度的分析。重新构建synchronized使开放调用更加安全。所谓开放调用是指调用的方法本身没有加锁,但是要以对方法操作的内容进行加锁。

2、如果你必须获得多个锁,那么锁的顺序必须是你设计工作的一部分:尽量减少潜在锁之间的交互数量,遵守并文档化该锁顺序协议。监测代码中死锁自由度的策略有:

1)识别什么地方会获取多个锁,并使锁数量尽可能少,保证它们的顺序在程序中一致。

2)在没有非开放调用的程序中,发现那些获得多重锁的实例是非常简单的。

3、尝试定时的锁,使用每个显式Lock类中定时tryLock特性,来替代使用内部锁机制
时间片轮转算法
2011-11-17 · TA获得超过1661个赞
知道小有建树答主
回答量:809
采纳率:0%
帮助的人:610万
展开全部
模块化要清晰,尽量低耦合。高内聚。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式