Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::thread::joinable

      From cppreference.com
      <cpp‎ |thread‎ |thread

      [edit template]
       
       
      Concurrency support library
      Threads
      (C++11)
      (C++20)
      this_thread namespace
      (C++11)
      (C++11)
      (C++11)
      Cooperative cancellation
      Mutual exclusion
      Generic lock management
      (C++11)
      (C++11)
      (C++11)
      (C++11)
      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
       
       
      bool joinable()constnoexcept;
      (since C++11)

      Checks if thestd::thread object identifies an active thread of execution. Specifically, returnstrue ifget_id()!=std::thread::id(). So a default constructedthread is not joinable.

      A thread that has finished executing code, but has not yet been joined is still considered an active thread of execution and is therefore joinable.

      Contents

      [edit]Parameters

      (none)

      [edit]Return value

      true if thestd::thread object identifies an active thread of execution,false otherwise.

      [edit]Example

      Run this code
      #include <chrono>#include <iostream>#include <thread>usingnamespace std::chrono_literals; void foo(){std::this_thread::sleep_for(500ms);} int main(){std::cout<<std::boolalpha; std::thread t;std::cout<<"before starting, joinable: "<< t.joinable()<<'\n';     t=std::thread{foo};std::cout<<"after starting, joinable: "<< t.joinable()<<'\n';     t.join();std::cout<<"after joining, joinable: "<< t.joinable()<<'\n';     t=std::thread{foo};    t.detach();std::cout<<"after detaching, joinable: "<< t.joinable()<<'\n';std::this_thread::sleep_for(1500ms);}

      Output:

      before starting, joinable: falseafter starting, joinable: trueafter joining, joinable: falseafter detaching, joinable: false

      [edit]References

      • C++23 standard (ISO/IEC 14882:2024):
      • 33.4.3.6 Members [thread.thread.member]
      • C++20 standard (ISO/IEC 14882:2020):
      • 32.4.2.5 Members [thread.thread.member]
      • C++17 standard (ISO/IEC 14882:2017):
      • 33.3.2.5 thread members [thread.thread.member]
      • C++14 standard (ISO/IEC 14882:2014):
      • 30.3.1.5 thread members [thread.thread.member]
      • C++11 standard (ISO/IEC 14882:2011):
      • 30.3.1.5 thread members [thread.thread.member]

      [edit]See also

      returns theid of the thread
      (public member function)[edit]
      waits for the thread to finish its execution
      (public member function)[edit]
      permits the thread to execute independently from the thread handle
      (public member function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/thread/thread/joinable&oldid=120727"

      [8]ページ先頭

      ©2009-2025 Movatter.jp