Featured image of post [Concurrency 07] False Sharing 탐지와 회피

[Concurrency 07] False Sharing 탐지와 회피

false sharing이 캐시 일관성 프로토콜을 통해 지연시간을 갉아먹는 원리를 설명하고, perf c2c로 실제 코드에서 공유 캐시 라인을 찾아낸 뒤 alignas(hardware_destructive_interference_size)로 회피하는 실전 절차를 다룹니다.

Featured image of post [Concurrency 07] Hazard Pointers·RCU

[Concurrency 07] Hazard Pointers·RCU

C++26에 채택된 hazard_pointer(P2530)·rcu(P2545)의 안전한 메모리 회수 메커니즘과 grace period 개념을 다루고, 2026년 7월 기준 GCC libstdc++·Clang libc++·MSVC STL의 구현 현황과 도입 판단 기준을 정리합니다.

Featured image of post [Concurrency 07] Lock 선택 기준

[Concurrency 07] Lock 선택 기준

mutex·spinlock·shared_mutex·futex 기반 프리미티브 중 워크로드에 맞는 락을 고르는 기준을 다룹니다. 임계 구역 길이·경합도·읽기쓰기 비율별 판단표와 adaptive mutex, SRWLOCK, os_unfair_lock의 구현 차이, 흔한 선택 오류를 정리합니다.

Featured image of post [Concurrency 07] Lock-free 설계 기초와 적용 판단

[Concurrency 07] Lock-free 설계 기초와 적용 판단

CAS 루프와 ABA 문제로 lock-free 설계의 기본 메커니즘을 설명하고, 언제 lock-free가 실제로 유효한지 판단하는 기준을 정리합니다. Intel TSX/HTM이 2021년 마이크로코드로 사실상 폐기된 배경도 함께 다룹니다.

Featured image of post [Concurrency 07] Lock-free 자료구조 구현

[Concurrency 07] Lock-free 자료구조 구현

Michael-Scott 큐, Treiber 스택, split-ordered list 해시맵의 CAS 재시도·헬핑 메커니즘과 메모리 회수 문제를 컴파일 가능한 C++20 코드와 ThreadSanitizer 검증 절차로 다룹니다.

Featured image of post [Concurrency 07] Seqlock 패턴

[Concurrency 07] Seqlock 패턴

리더가 락 없이 읽고 시퀀스 카운터로 일관성을 검증하는 Seqlock 패턴을 다룹니다. 카운터 설계, 짝수/홀수 판정 원리, 구현 함정, ThreadSanitizer가 이 패턴에서 오탐·미탐을 동시에 낼 수 있는 이유를 정리합니다.

Featured image of post [Concurrency 07] SPSC/MPMC 큐와 링버퍼

[Concurrency 07] SPSC/MPMC 큐와 링버퍼

SPSC와 MPMC 큐의 설계 차이를 링버퍼 인덱스 관리 관점에서 다루고, Vyukov의 per-cell 시퀀스 번호 MPMC 알고리즘과 캐시 라인 패딩·로컬 인덱스 캐싱 기법을 컴파일 가능한 C++20 코드와 ThreadSanitizer 검증으로 설명합니다.

Featured image of post [Concurrency 07] std::jthread와 stop_token

[Concurrency 07] std::jthread와 stop_token

C++20 std::jthread의 협력적 취소 메커니즘을 다룹니다. stop_token/stop_source/stop_callback의 내부 동작, 소멸자의 자동 request_stop+join, std::thread 대비 안전성 이점과 콜백 실행 스레드·마이그레이션 함정을 정리합니다.

Featured image of post [Concurrency 07] Thread-local Storage 비용과 패턴

[Concurrency 07] Thread-local Storage 비용과 패턴

thread_local 접근 비용을 가르는 정적(Local/Initial Exec) TLS 모델과 동적(General/Local Dynamic) 모델의 차이를 분석하고, 스레드별 캐시·카운터 패턴, static TLS 고갈과 스레드 풀 재사용 함정을 다룹니다.

Featured image of post [Concurrency 07] Thread-per-core 아키텍처와 io_uring 연계

[Concurrency 07] Thread-per-core 아키텍처와 io_uring 연계

IORING_SETUP_SINGLE_ISSUER로 io_uring 제출 경로의 락을 생략하는 원리와 thread-per-core 아키텍처가 결합해 지연시간을 줄이는 방식을 다룹니다. Apache Iggy의 마이그레이션 사례로 설계 판단 기준을 정리합니다.