什么是使用锁显式vs隐式的最佳方法?

时间:2013-09-12 17:00:41

标签: java multithreading concurrency locking

是否有任何好的用例支持synchronized关键字的隐式锁定?

2 个答案:

答案 0 :(得分:1)

通常需要考虑的是synchronized锁定this(类的实例取决于它是否是静态方法)。这意味着如果另一个类可以访问具有synchronized的实例,则它可以锁定同一个对象。

因此,通常认为最佳做法是明确同步/锁定private final字段。

答案 1 :(得分:1)

如果您不需要tryLocklockInterruptibly或通过锁定对象提供的任何其他专门方法,那么使用synchronized更安全,更易于使用:锁定,你需要遵循一个特定的解锁模式与finally块,如果失败,最终可能会锁定永远不会释放。

如果你确实需要这些方法,那么你就没有选择......