/
https://42jerrykim.github.io/ _index.md
공유 상태를 애초에 없애는 전략을 다룹니다. Immutable 패턴, Copy-on-Write, thread_local로 공유를 회피하고, SPSC Lock-Free 큐를 직접 구현합니다. 메모리 회수 심화는 13장에서 이어집니다. 비동기 I/O(Proactor), 멀티스레드 이벤트 처리, 동기/비동기 경계를 관리하는 Half-Sync/Half-Async 패턴을 학습합니다. io_uring·IOCP 비교와 이벤트 루프의 블로킹 함정도 함께 다룹니다. 단일 스레드에서 여러 이벤트 소스를 효율적으로 처리하는 Reactor 패턴을 학습합니다. select/poll/epoll의 차이를 비교하고, 컴파일 가능한 poll() 기반 이벤트 루프를 직접 구현·검증하며 Windows IOCP와도 비교합니다. 스스로 스레드를 가지고 메서드 호출을 큐로 받아 순서대로 처리하는 Active Object 패턴을 구현합니다. Actor 모델과의 차이, 우선순위 큐, Thread Pool·Future와의 하이브리드 구조도 다룹니다. std::future, std::promise, std::async, std::packaged_task로 비동기 작업의 결과와 예외를 안전하게 전달하는 법을 다룹니다. launch policy의 함정과 Thread Pool 결합 패턴도 포함합니다. 스레드 풀, 작업 큐, Work Stealing 알고리즘을 std::thread와 mutex/condition_variable만으로 직접 구현합니다. 백프레셔가 있는 스레드 풀, 풀 크기 결정 기준, 실전 선택 가이드까지 다룹니다. shared_mutex로 읽기/쓰기 락을 분리하고, DCLP(Double-Checked Locking)의 역사적 함정과 C++11 이후 올바른 구현, call_once를 통한 안전한 지연 초기화까지 실전 코드로 학습합니다. Bounded Buffer, Unbounded Queue, Backpressure 메커니즘을 통해 Producer-Consumer 패턴의 확장성과 트레이드오프를 학습합니다. 다중 프로듀서/컨슈머 구조와 lock contention 최적화도 다룹니다. Monitor Object, Guarded Suspension, Balking 패턴을 condition_variable로 구현합니다. spurious wakeup과 lost wakeup을 재현·검증하고, std::latch/barrier/semaphore와의 관계도 비교합니다. RAII 기반 Scoped Locking, Strategized Locking, Thread-Safe Interface 패턴을 구현하고, 자기 데드락과 인터페이스 위반을 코드로 재현 후 고치는 장입니다. hierarchical mutex로 락 순서 위반도 실시간 검출합니다.