release系列方法用于實現解鎖一個或多個線程匠楚,該方法可用于實現unlock画机。該方法首先會調用tryRelease方法盛卡,這個方法需要子類實現,嘗試設置狀態(tài)值以反映獨占模式下的release行為唆香。如果返回true嫌变,則需要解鎖后繼節(jié)點。下面我們直接看圖躬它。
release().png
該方法的核心就是當tryRelease成功后腾啥,解鎖頭結點的下一個為被取消的后繼節(jié)點。
獨占模式下就只有這樣一個release方法虑凛。而在共享模式下碑宴,區(qū)別就是調用的是tryReleaseShared方法,并且在解鎖后繼的時候要確保release被傳播桑谍。此時會判斷頭結點狀態(tài)延柠,如果是SIGNAL,那么就解鎖后繼節(jié)點锣披。如果是0贞间,那么設置狀態(tài)為PROPAGATE。