/
https://42jerrykim.github.io/ _index.md
단일 스레드에서 여러 이벤트 소스를 효율적으로 처리하는 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로 락 순서 위반도 실시간 검출합니다. 멀티스레드 프로그래밍의 기반이 되는 C++ 메모리 모델을 다룹니다. 데이터 레이스, happens-before 관계, memory_order별 acquire-release/relaxed 의미, atomic 기초를 표준 문서와 컴파일 가능한 예제로 학습합니다. C++ 표준 라이브러리로 구현하는 멀티스레딩 디자인 패턴 시리즈의 도입 챕터입니다. 왜 락 사용법이 아니라 동시성 구조 설계를 배워야 하는지, POSA2 계보와 13챕터 커리큘럼, 학습 후 달성할 역량을 안내합니다.