Читать «Параллельное программирование на С++ в действии. Практика разработки многопоточных программ» онлайн - страница 438

Энтони Уильямс

}

D.7.1. Класс std::thread

Класс std::thread применяется для управления потоком выполнения. В нем имеются средства для запуска нового потока и ожидания завершения потока, а также для идентификации потоков. Также в класс включены другие функции для управления потоком выполнения.

Определение класса

class thread {

public:

 // Типы

 class id;

 typedef implementation-defined

 native_handle_type; // необязательно

 // Конструкторы и деструкторы

 thread() noexcept;

 ~thread();

 template<typename Callable, typename Args...>

 explicit thread(Callable&& func, Args&&... args);

 // Копирование и перемещение

 thread(thread const& other) = delete;

 thread(thread&& other) noexcept;

 thread& operator=(thread const& other) = delete;

 thread& operator=(thread&& other) noexcept;

 void swap(thread& other) noexcept;

 void join();

 void detach();

 bool joinable() const noexcept;

 id get_id() const noexcept;

 native_handle_type native_handle();

 static unsigned hardware_concurrency() noexcept;

};

void swap(thread& lhs, thread& rhs);

STD::THREAD::ID , КЛАСС

Экземпляр класса std::thread::id идентифицирует конкретный поток выполнения.

Определение класса

class thread::id {

public:

 id() noexcept;

};

bool operator==(thread::id x, thread::id y) noexcept;

bool operator!=(thread::id x, thread::id y) noexcept;

bool operator<(thread::id x, thread::id y) noexcept;

bool operator<=(thread::id x, thread::id y) noexcept;

bool operator>(thread::id x, thread::id y) noexcept;

bool operator>=(thread::id x, thread::id y) noexcept;

template<typename charT, typename traits>

basic_ostream<charT, traits>&

 operator<<(basic_ostream<charT, traits>&& out, thread::id id);

Примечание. Значение std::thread::id, идентифицирующее конкретный поток выполнения, должно отличаться от значения экземпляра std::thread::id, сконструированного по умолчанию, и от значения, представляющего любой другой поток.