CAS 한 개로는 java.util.concurrent.locks.Lock의 기능을 모두 제공할 수 없다.
같은 스레드의 두 번째 획득을 처리해야 한다.
다른 스레드의 unlock을 거부해야 한다.
대기 중 인터럽트나 시간 제한이 필요하다.
오래 기다린 참여자의 순서를 다뤄야 한다.
핵심: 범용 배포보다 CAS 원리를 검증하는 작은 실험에 한정한다.