C++ · THREAD

스레드 인자 전달 방식 비교

std::thread에 인자를 넘기면 기본적으로 복사되어 새 스레드로 전달됩니다. 참조를 의도했다면 std::ref와 수명 관리를 함께 생각해야 합니다.

값과 참조 흐름

args
call site스레드를 만들 때 함수와 인자를 함께 넘깁니다.
copy기본은 인자를 내부 저장소에 복사합니다.
std::ref참조 전달 의도를 wrapper로 명시합니다.
thread body새 스레드에서 복사본 또는 원본 참조를 사용합니다.
join원본 수명과 스레드 종료를 맞춥니다.
호출복사참조 명시실행join

스레드 인자 전달 방식 비교 선택 기준

lifetime
값 전달작은 값이나 독립 작업에는 가장 안전합니다.
참조 전달공유 상태 수정이 필요하면 std::ref를 씁니다.
수명 보장참조 대상은 스레드 종료 전까지 살아 있어야 합니다.
동기화공유 값을 수정하면 mutex 등 보호가 필요합니다.