Namespaces
Variants

std::thread:: ~thread

From cppreference.net
Concurrency support library
Threads
(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 ( ) ;
(начиная с C++11)

Уничтожает объект потока.

Если * this имеет связанный поток ( joinable ( ) == true ), вызывается std:: terminate ( ) .

Примечания

Объект потока не имеет связанного потока (и его можно безопасно уничтожать) после

  • он был создан конструктором по умолчанию.
  • он был перемещён.
  • join() был вызван.
  • detach() был вызван.

Пример

#include <thread>
using namespace std::chrono_literals;
int main()
{
    auto bleah = std::thread{[]{ std::this_thread::sleep_for(13ms); }};
}   // ~thread вызывает std::terminate()

Возможный вывод:

terminate called without an active exception

Смотрите также

если поток является присоединяемым, то запрашивается остановка и поток присоединяется
(публичная функция-член std::jthread )