1. 可重入性
synchronized的鎖對象中有一個計數器(recursions變量)會記錄線程獲得幾次鎖;
可重入的好處:
- 可以避免死鎖;
- 可以讓我們更好的封裝代碼;
- synchronized是可重入鎖,每部鎖對象會有一個計數器記錄線程獲取幾次鎖,在執行完同步代碼塊時,計數器的數量會-1,直到計數器的數量為0,就釋放這個鎖。
2. 不可中斷性
- 一個線程獲得鎖后,另一個線程想要獲得鎖,必須處于阻塞或等待狀態,如果個線程不釋放鎖,第二個線程會一直阻塞或等待,不可被中斷;
- synchronized 屬于不可被中斷;
- Lock lock方法是不可中斷的;
- Lock tryLock方法是可中斷的;