我正在研究java线程和死锁,我理解死锁的例子,但我想知道是否有通用的规则来防止它。
我的问题是,是否有一些规则或技巧可以应用于java中的源代码,以防止死锁?如果是,你能解释一下如何实现它吗?
发布于 2013-05-28 05:52:00
我脑海中的一些小贴士
使用可中断的锁
发布于 2013-05-28 11:57:44
封装,封装,封装!使用锁可能犯的最危险的错误是将锁暴露给世界(使其公开)。如果你这样做,不知道会发生什么,因为任何人都可以在对象不知道的情况下获得锁(这也是为什么你不应该锁定this)。如果你保持你的锁是私有的,那么你就拥有了完全的控制权,这使得它更易于管理。
发布于 2013-05-28 05:51:09
ConcurrentLinkedQueue而不是同步的锁以相同的顺序获取锁,例如,为每个锁分配唯一的数值,并在获取数值较高的锁之前获取数值较低的锁)https://stackoverflow.com/questions/16780937
复制相似问题