synchronized鎖的注意事項

2021-09-10 07:53:11 字數 425 閱讀 5735

該鎖可以重入 。即 乙個同步方法呼叫另乙個同步方法,乙個執行緒已經擁有某個物件的鎖,再次申請的時候仍然會得到該物件的鎖。

public class test1 

public synchronized void fun2()

public static void main(string args)

}

public class test2 }}

public static void main(string args) catch (interruptedexception e)

new thread(()->fun(),"t2").start();

}}

結果就是等t1出異常後,後面的執行過程都是t2完成的。丟擲異常後,程式正常結束。

synchronized 鎖的重入

1 乙個同步方法呼叫另外乙個同步方法,能否得到鎖?重入 synchronized預設支援重入 slf4j topic test public class demo catch interruptedexception e test2 為什麼test2還需要加sync 他本身就包含在test1 而te...

synchronized 修飾的鎖

datetime 2020 11 25 21 14 author db public class concurrency private static void lockcode private static void lockmethod 鎖的是物件例項方法,同一物件是同步的,不同物件是非同步的 ...

synchronized鎖的公升級

在分析markword時,提到了偏向鎖 輕量級鎖 重量級鎖。在分析這幾種鎖的區別時,我們先來思考乙個問題 使用鎖能夠實現資料的安全性,但是會帶來效能的下降。不使用鎖能夠基於執行緒並行提公升程式效能,但是卻不能保證執行緒安全性。這兩者之間似乎是沒有辦法達到既能滿足效能也能滿足安全性的要求。hotspo...