我已經查看了ReentrantLock的Java API,我可以看到的是關鍵字沒有使用同步。它是否在AbstractQueuedSynchronizer中的下面的方法中(ReentrantLock是指在嘗試獲取鎖時引用)來同步對象?由於compareAndSwapInt
是本地方法,因此在本機級別/代碼中進行了同步嗎?ReentrantLock如何同步?
protected final boolean compareAndSetState(int expect, int update) {
// See below for intrinsics setup to support this
return unsafe.compareAndSwapInt(this, stateOffset, expect, update);
}