2012-10-11 54 views
1

當我們在一個對象上同步時,這是一個Re-Entrant鎖嗎?同步鎖定和重新進入鎖定之間有真正的區別嗎?Java同步和Re-Entrant鎖定

親切的問候,

+1

爲什麼不試試?如果它是可重入的,則同步實例方法應該能夠自行調用而不會阻塞。 –

+1

是的,Java中的內置鎖是可重入的。這一事實很容易實現,儘管 - 馬克注意到上面提到的那樣是可以測試的。 –

回答

2

是的,​​關鍵字鎖重入的。他們之間的實現可以不同。例如,在早期版本的JVM中,ReentrantLock的實現比關鍵字​​有更好的吞吐量。如果或如何實現不同取決於JVM實現/版本。

一般而言,如果您不需要ReentrantLock提供的其他功能,我傾向於推薦使用​​關鍵字。但這最終是一種偏好。

+0

不公平ReentrantLock可以比'synchronized'更快。公平的'ReentrantLock'要慢得多。 「同步」有點公平。 – irreputable