0
如下面的示例所示,一旦對call
方法中的對象執行了鎖定,則不需要其他方法來使用關鍵字。多級java行爲同步
public class Prac
{
public static void main(String[] args)
{
new Prac().call();
}
private synchronized void call()
{
further();
}
private synchronized void further()
{
oneMore();
}
private synchronized void oneMore()
{
// do something
}
}
但是,如果我還添加關鍵字further
和onceMore
,這樣的遭遇做什麼java嗎? java是否檢查是否需要鎖定?或者當方法調用位於同一堆棧中時,它只是繼續執行,而不檢查是否需要鎖定,因爲鎖定已經獲取。
注意:我懷疑java是如何在這種情況下行爲的,我不確定,但我認爲它與偏向鎖定不同。
檢查鎖是否會增加任何性能開銷? – Batty 2014-12-04 09:35:46