std:: thread
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
헤더 파일에 정의됨
<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) |
|
|
[static]
|
구현에서 지원하는 동시 스레드 수를 반환
(public static member function) |
Operations |
|
|
스레드 실행이 완료될 때까지 대기
(public member function) |
|
|
스레드가 스레드 핸들로부터 독립적으로 실행되도록 허용
(public member function) |
|
|
두 thread 객체를 교환
(public member function) |
|
비멤버 함수
|
(C++11)
|
std::swap
알고리즘의 특수화
(함수) |
참고 항목
|
(C++20)
|
std::thread
자동 조인과 취소 기능을 지원하는
(클래스) |