Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::jthread::joinable

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

      [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++20)

      Checks if thestd::jthread object identifies an active thread of execution. Specifically, returnstrue ifget_id()!= std::jthread::id(). So a default constructedjthread 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::jthread 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::jthread t;std::cout<<"before starting, joinable: "<< t.joinable()<<'\n';     t=std::jthread{foo};std::cout<<"after starting, joinable: "<< t.joinable()<<'\n';     t.join();std::cout<<"after joining, joinable: "<< t.joinable()<<'\n';     t=std::jthread{foo};    t.detach();std::cout<<"after detaching, joinable: "<< t.joinable()<<'\n'; }

      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.4.3 Members [thread.jthread.mem]
      • C++20 standard (ISO/IEC 14882:2020):
      • 32.4.3.2 Members [thread.jthread.mem]

      [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/jthread/joinable&oldid=120726"

      [8]ページ先頭

      ©2009-2025 Movatter.jp