清除代码-从另一个部分调用一个锁定的部分



我正在阅读鲍勃叔叔的清洁代码,第13章的结论包括以下内容:

不要锁定不需要锁定的代码区域。避免从另一个分区调用一个锁定分区。

为什么建议不从另一个锁定部分调用一个锁定的部分(假设您持有可重入锁)?这对我来说似乎完全可行。

如果需要同时锁定2个或多个对象,则没有其他方法可以从另一个锁定部分调用一个锁定节。为了避免死锁,请始终以相同的顺序锁定对象。

避免从另一个部分调用一个锁定的部分。

指由不同锁锁定的部分,如果您没有以相同的顺序获取锁,则可能会导致死锁。您可以在Java教程中找到这个问题的一个有趣的例子。

最新更新