synchronized可重入特性、不可中斷特性概念


可重入特性

一個線程可以多次執行synchronized,重複獲取同一把鎖。

可重入原理

synchronized的鎖對象中有一個計數器(recursions變量)會記錄線程獲得幾次鎖.

可重入的好處

  1. 可以避免死鎖
  2. 可以讓我們更好的來封裝代碼

小結

synchronized是可重入鎖,內部鎖對象中會有一個計數器記錄線程獲取幾次鎖啦,在執行完同步代碼塊時,計數器的數量會-1,知道計數器的數量爲0,就釋放這個鎖。


不可中斷特性

什麼是不可中斷
一個線程獲得鎖後,另一個線程想要獲得鎖,必須處於阻塞或等待狀態,如果第一個線程不釋放鎖,第二個線程會一直阻塞或等待,不可被中斷。

synchronized是不可中斷,處於阻塞狀態的線程會一直等待鎖。

小結:

不可中斷是指,當一個線程獲得鎖後,另一個線程一直處於阻塞或等待狀態,前一個線程不釋放鎖,後一個線程會一直阻塞或等待,不可被中斷。

synchronized屬於不可被中斷
Lock的lock方法是不可中斷的
Lock的tryLock方法是可中斷的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章