태그: thread
7편
-
Kotlin 코루틴 vs 스레드: 비용 차이와 비동기 처리 선택 기준
OS 스레드와 사용자 레벨 코루틴의 생성 비용, 컨텍스트 스위칭, 메모리 사용량 차이를 비교하고, coroutineScope의 구조적 동시성과 10개 API 동시 호출 예제로 코루틴과 스레드를 고르는 기준을 설명합니다.
-
Rust 동시성 | Thread, Channel, Arc, Mutex
Rust 동시성 프로그래밍. thread::spawn과 move 클로저로 데이터 넘기기, 채널(mpsc)로 메시지 주고받기, Arc<Mutex<T>>로 상태 공유하기, 데이터를 청크로 나눈 병렬 계산 예제를 정리합니다.
-
Java 멀티스레드 | Thread, Runnable, Executor
Thread 상속보다 Runnable 구현을 권장하는 이유, ExecutorService 스레드 풀과 Callable·Future로 결과를 받는 방법, synchronized 메서드와 블록으로 경쟁 상태를 막는 법을 병렬 다운로더 예제로 설명합니다.
-
C++ thread_local: 스레드별 카운터·버퍼, 초기화 시점과 소멸 순서
thread_local 변수는 이름은 하나지만 스레드마다 별도 메모리에 존재해 락 없이 스레드별 카운터·버퍼·난수 생성기를 만들 수 있습니다. 스레드 시작 시와 첫 사용 시 초기화 차이, 클래스 멤버 선언 방법, 소멸 순서와 메모리 사용량 함정을 다룹니다.
-
C++ sleep_for·sleep_until로 주기 작업 만들기: 누적 드리프트와 짧은 sleep의 부정확함
sleep_for와 sleep_until, yield로 주기 작업과 타임아웃을 만들 때 생기는 문제를 예제로 다룹니다. sleep_until로 누적 드리프트를 줄이는 법, 짧은 sleep의 부정확함, 바쁜 대기의 비용, steady_clock을 써야 하는 이유, Asio 타이머와의 연계도 설명합니다.
-
C++ 멀티스레딩 기초: std::thread·mutex·생산자-소비자와 자주 겪는 문제
std::thread 생성과 인자 전달, mutex와 lock_guard로 경쟁 조건 막기, 생산자-소비자와 스레드 풀 구현, 그리고 데드락, detach 후 댕글링 참조, false sharing처럼 멀티스레드 코드에서 자주 겪는 문제의 원인과 해결을 예제로 다룹니다.
-
C++20 std::jthread: 자동 join과 stop_token으로 스레드 협조적 중단하기
C++20 std::jthread가 소멸 시 자동으로 join하는 방식과 stop_token·stop_source·stop_callback으로 스레드를 협조적으로 중단하는 방법을 std::thread와 비교하고, 중단 체크 누락이나 detach 같은 실수를 예제로 짚습니다.