CHAPTER 1 러스트 동시성의 기초
1.1 러스트의 스레드
1.2 범위 스레드
1.3 스레드 소유권과 레퍼런스 카운팅
1.4 소유권 대여와 데이터 경합
1.5 내부 가변성
1.6 스레드 안전성: Send와 Sync
1.7 잠금: 뮤텍스와 RwLock
1.8 대기: 파킹과 조건 변수
요점 정리
CHAPTER 2 아토믹
2.1 아토믹한 데이터 load 및 store 연산
2.2 fetch-and-modify 연산
2.3 compare-and-exchange 연산
요점 정리
CHAPTER 3 메모리 순서
3.1 메모리 순서 재정렬과 최적화
3.2 메모리 모델
3.3 happens-before 관계
3.4 느슨한 메모리 순서
3.5 해제 순서와 획득 순서
3.6 소비 순서
3.7 순차적으로 일관된 순서
3.8 펜스
3.9 자주 발생하는 오해
요점 정리
CHAPTER 4 스핀 락 구현해보기
4.1 가장 간단한 구현체
4.2 Unsafe 스핀 락
4.3 잠금 가드를 사용한 안전한 인터페이스
요점 정리
CHAPTER 5 채널 구현해보기
5.1 간단한 뮤텍스 기반 채널
5.2 언세이프 원샷 채널
5.3 런타임 검사를 통한 안전성
5.4 타입을 사용한 안전성
5.5 할당을 피하기 위한 소유권 대여
5.6 차단
요점 정리
CHAPTER 6 Arc 구현해보기
6.1 기본적인 레퍼런스 카운팅
6.2 위크 포인터
6.3 최적화
요점 정리
CHAPTER 7 프로세서 이해하기
7.1 프로세서 명령어
7.2 캐싱
7.3 재정렬
7.4 메모리 순서
요점 정리
CHAPTER 8 운영체제의 기본 요소
8.1 커널 인터페이스
8.2 pOSIX
8.3 리눅스
8.4 맥OS
8.5 윈도우
요점 정리
CHAPTER 9 잠금 구현해보기
9.1 뮤텍스
9.1.1 시스템 콜 피하기
9.1.2 좀 더 최적화해보기
9.1.3 벤치마킹
9.2 조건 변수
9.2.1
러스트 언어로 안전성과 성능을 동시에 극대화하다
이 책은 동시성을 최대한 활용하여 효율적인 코드를 작성하기 위해 Atomic과 Lock을 중심으로 실무 지식을 제공하는 러스트 핵심 가이드입니다. Atomic과 Lock 연산의 활용법은 물론, Mutex를 사용하여 안전하게 데이터에 접근하는 방법에 대한 핵심 원칙까지 소개합니다. 뿐만 아니라, 동시성 코드에서 중요한 메모리 순서와 관련된 개념을 자세히 설명하고 있어 여러 스레드 간에 데이터를 안전하게 공유하거나 수정하기 위한 Arc와 Mutex에 대한 심층적인 내용도 체계적으로 배워나갈 수 있습니다. 이 책을 통해 동시성 프로그래밍에 가장 최적화된 러스트를 활용하여 다양한 동시성 문제에 유연하게 대응하고 안전한 소프트웨어를 개발하는 데 필요한 기술을 습득하길 바랍니다.
이 책의 내용
* 운영체제의 지원을 받아 Lock 구현하기
* Mutex, Atomic, 조건 변수, 메모리 순서
* 자체 Lock 및 동기화 기본 요소를 구축하기
* 인텔 및 ARM 프로세서에서 Atomic 연산 활용하기
* 러스트의 타입 시스템이 동시성 프로그램을 작동하는 방법
* 동시성, Atomic, Lock을 포함하는 코드를 올바르게 작성하는 방법
추천사
이 유명한 책을 드디어 한국어로 접할 수 있게 되었습니다! 꼭 러스트 공부가 아니더라도, 동시성 프로그래밍 혹은 저수준 메모리 모델에 대해 알고 싶은 분들에게 추천드립니다.
- 조경민, KAIST 동시성 및 병렬성 연구실
이 책은 러스트를 이용한 동시성 프로그래밍 방법뿐만 아니라 다양한 예제를 통해 그 내부 원리까지 자세히 설명합니다. 메모리 장벽이나 재정렬의 기본적인 지식부터 실제 코드까지 쉽게 이해할 수 있도록 구성되어 있어, 동시성 프로그래밍을 근본 원리부터 배우고 싶은 사람에게 큰 도움이 될 것입니다.
- 김기오, 라인플러스
이 책에서는 러스트의 동시성이 내부적으로 어떻게 동작하는지에 대해 Deep-dive하게 다가가서 러스트가 다