面試題:synchronized與Lock的區別
- synchronized是關鍵字,而Lock是一個接口。
- synchronized會自動釋放鎖,而Lock必須手動釋放鎖。
- synchronized是不可中斷的,Lock可以中斷也可以不中斷。
- 通過Lock可以知道線程有沒有拿到鎖,而synchronized不能。
- synchronized能鎖住方法和代碼塊,而Lock只能鎖住代碼塊。
- Lock可以使用讀鎖提高多線程讀效率。
- synchronized是非公平鎖,ReentrantLock可以控制是否是公平鎖。