РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
765 of 815 menu

Метод joinable

Метод joinable класса thread проверяет, можно ли к потоку применить операции join или detach. Метод не принимает параметров и возвращает true, если поток является joinable, и false в противном случае.

Поток считается joinable, если он связан с активным потоком выполнения. По умолчанию созданный объект thread является joinable. После вызова join или detach поток становится не joinable. Также не joinable является поток по умолчанию сконструированный или перемещенный.

Синтаксис

thread.joinable()

Пример

Давайте создадим поток и проверим его состояние до и после вызова join:

#include <iostream> #include <thread> using namespace std; void func() { cout << "Thread is running" << endl; } int main() { thread t(func); cout << "Before join: " << t.joinable() << endl; t.join(); cout << "After join: " << t.joinable() << endl; return 0; }

Результат выполнения кода:

"Before join: 1" "Thread is running" "After join: 0"

Пример

Давайте проверим состояние потока по умолчанию и после вызова detach:

#include <iostream> #include <thread> using namespace std; void func() { cout << "Detached thread" << endl; } int main() { thread t1; cout << "Default thread: " << t1.joinable() << endl; thread t2(func); cout << "Before detach: " << t2.joinable() << endl; t2.detach(); cout << "After detach: " << t2.joinable() << endl; return 0; }

Результат выполнения кода:

"Default thread: 0" "Before detach: 1" "After detach: 0" "Detached thread"

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

  • класс thread,
    который представляет поток выполнения
  • метод join,
    который ожидает завершения потока
  • метод detach,
    который отсоединяет поток от объекта
  • метод get_id,
    который возвращает идентификатор потока
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить