Namespaces
Variants

std:: thread

From cppreference.net
Concurrency support library
Threads
thread
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
헤더 파일에 정의됨 <thread>
class thread ;
(C++11 이후)

thread 클래스는 단일 실행 스레드 를 나타냅니다. 스레드를 사용하면 여러 함수가 동시에 실행될 수 있습니다.

스레드는 연관된 스레드 객체의 생성과 동시에 (OS 스케줄링 지연이 발생할 수 있음) 생성자 인자 로 제공된 최상위 함수에서 실행을 시작합니다. 최상위 함수의 반환값은 무시되며, 예외를 발생시키며 종료할 경우 std::terminate 가 호출됩니다. 최상위 함수는 그 반환값이나 예외를 호출자에게 std::promise 를 통해 전달하거나 공유 변수를 수정함으로써 전달할 수 있습니다 (이 경우 동기화가 필요할 수 있으며, std::mutex std::atomic 참조).

std::thread 객체는 어떤 스레드도 나타내지 않는 상태일 수도 있습니다(기본 생성 후, 이동 이후, detach , 또는 join 이후). 또한 실행 스레드가 어떤 thread 객체와도 연관되지 않을 수도 있습니다( detach 이후).

두 개의 std::thread 객체가 동일한 실행 스레드를 나타낼 수 없습니다; std::thread CopyConstructible 또는 CopyAssignable 이 아니지만, MoveConstructible 이고 MoveAssignable 입니다.

목차

멤버 타입

멤버 타입 정의
native_handle_type ( 선택적* ) 구현 정의

멤버 클래스

스레드의 id 를 나타냄
(public member class)

멤버 함수

새로운 thread 객체를 생성
(public member function)
thread 객체를 소멸시킴, 기본 스레드는 조인되거나 분리되어야 함
(public member function)
thread 객체를 이동
(public member function)
Observers
스레드가 조인 가능한지 확인, 즉 병렬 컨텍스트에서 실행 중일 가능성이 있는지
(public member function)
스레드의 id 를 반환
(public member function)
기본 구현 정의 스레드 핸들을 반환
(public member function)
구현에서 지원하는 동시 스레드 수를 반환
(public static member function)
Operations
스레드 실행이 완료될 때까지 대기
(public member function)
스레드가 스레드 핸들로부터 독립적으로 실행되도록 허용
(public member function)
두 thread 객체를 교환
(public member function)

비멤버 함수

std::swap 알고리즘의 특수화
(함수)

참고 항목

(C++20)
std::thread 자동 조인과 취소 기능을 지원하는
(클래스)