ReentrantLock 용 Java API를 살펴본 결과 synchronized
키워드와 동기화가 사용되지 않는다는 것을 알 수 있습니다. 객체를 동기화하는 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);
}