16.1.1 플랫폼 메모리 모델
16.1.2 재배치
16.1.3 자바 메모리 모델을 간략하게 설명한다면
미리 발생 현상에 대한 규칙은 다음과 같다.
16.1.4 동기화 피기백
피기백(piggyback) : 코드의 실행 순서를 정하는 면에서 미리 발생 규칙이 갖고 있는 능력의 수준 때문에 현재 사용 중인 동기화 기법의 가시성에 얹혀가는 방법
나열된 순서
에 민감하며 오류가 발생하기 쉬움FutureTask 클래스에서 protected로 구현하고 있는 AbstractQueuedSynchronizer 에서 피기백 방법을 볼 수 있음
public class FutureTask<V> implements RunnableFuture<V> {
/*
* Revision notes: This differs from previous versions of this
* class that relied on AbstractQueuedSynchronizer, mainly to
* avoid surprising users about retaining interrupt status during
* cancellation races. Sync control in the current design relies
* on a "state" field updated via CAS to track completion, along
* with a simple Treiber stack to hold waiting threads.
*/
...
}