동기화
동기화 (Synchronization)
Racket은 여러 스레드가 안전하게 협력할 수 있도록 다양한 동기화 수단을 제공해요. 이 장에서는 그 동기화 도구상자가 어떻게 네 개의 계층으로 구성되는지 큰 그림을 먼저 보여줄게요.
출처: Racket Reference
본문
11.2 동기화
Racket의 동기화 도구상자는 네 계층으로 나뉩니다:
- 동기화 가능 이벤트(synchronizable events) — 동기화를 위한 일반적인 프레임워크;
- 채널(channels) — 원리적으로는 다른 대부분의 동기화 가능 이벤트를 만들어 내는 데 쓸 수 있는 기본 요소(이벤트를 조합하는 것들만 제외);
- 세마포어(semaphores) — 특히 값이 싸고 단순한 동기화 기본 요소.
- 퓨처 세마포어(future semaphores) — 퓨처(futures)와 함께 쓰기 위한 단순한 동기화 기본 요소.
다음 하위 섹션들이 이어집니다:
- 11.2.1 이벤트 (Events)
- 11.2.2 채널 (Channels)
- 11.2.3 세마포어 (Semaphores)
- 11.2.4 버퍼드 비동기 채널 (Buffered Asynchronous Channels)
- 11.2.4.1 비동기 채널의 생성과 사용
- 11.2.4.2 비동기 채널의 계약과 임퍼서네이터