2012-10-11 46 views
1

当我们在一个对象上同步时,这是一个Re-Entrant锁吗?同步锁定和重新进入锁定之间有真正的区别吗?Java同步和Re-Entrant锁定

亲切的问候,

+1

为什么不试试?如果它是可重入的,则同步实例方法应该能够自行调用而不会阻塞。 –

+1

是的,Java中的内置锁是可重入的。这一事实很容易实现,尽管 - 马克注意到上面提到的那样是可以测试的。 –

回答

2

是的,​​关键字锁重入的。他们之间的实现可以不同。例如,在早期版本的JVM中,ReentrantLock的实现比关键字​​有更好的吞吐量。如果或如何实现不同取决于JVM实现/版本。

一般而言,如果您不需要ReentrantLock提供的其他功能,我倾向于推荐使用​​关键字。但这最终是一种偏好。

+0

不公平ReentrantLock可以比'synchronized'更快。公平的'ReentrantLock'要慢得多。 “同步”有点公平。 – irreputable