Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::jthread

      From cppreference.com
      <cpp‎ |thread
       
       
      Concurrency support library
      Threads
      (C++11)
      jthread
      (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
       
       
      Defined in header<thread>
      class jthread;
      (since C++20)

      The classjthread representsa single thread of execution. It has the same general behavior asstd::thread, except thatjthread automatically rejoins on destruction, and can be cancelled/stopped in certain situations.

      Threads begin execution immediately upon construction of the associated thread object (pending any OS scheduling delays), starting at the top-level function provided as aconstructor argument. The return value of the top-level function is ignored and if it terminates by throwing an exception,std::terminate is called. The top-level function may communicate its return value or an exception to the caller viastd::promise or by modifying shared variables (which may require synchronization, seestd::mutex andstd::atomic).

      Unlikestd::thread, thejthread logically holds an internal private member of typestd::stop_source, which maintains a shared stop-state. Thejthread constructor accepts a function that takes astd::stop_token as its first argument, which will be passed in by thejthread from its internalstd::stop_source. This allows the function to check if stop has been requested during its execution, and return if it has.

      std::jthread objects may also be in the state that does not represent any thread (after default construction, move from,detach, orjoin), and a thread of execution may be not associated with anyjthread objects (afterdetach).

      No twostd::jthread objects may represent the same thread of execution;std::jthread is notCopyConstructible orCopyAssignable, although it isMoveConstructible andMoveAssignable.

      Contents

      [edit]Member types

      Member type Definition
      idstd::thread::id
      native_handle_type(optional*)std::thread::native_handle_type[edit]

      [edit]Member functions

      constructs newjthread object
      (public member function)[edit]
      if the thread is joinable, then a stop is requested and the thread joins
      (public member function)[edit]
      moves thejthread object
      (public member function)[edit]
      Observers
      checks whether the thread is joinable, i.e. potentially running in parallel context
      (public member function)[edit]
      returns theid of the thread
      (public member function)[edit]
      returns the underlying implementation-defined thread handle
      (public member function)[edit]
      returns the number of concurrent threads supported by the implementation
      (public static member function)[edit]
      Operations
      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]
      swaps two jthread objects
      (public member function)[edit]
      Stop token handling
      returns astop_source object associated with the shared stop state of the thread
      (public member function)[edit]
      returns astop_token associated with the shared stop state of the thread
      (public member function)[edit]
      requests execution stop via the shared stop state of the thread
      (public member function)[edit]

      [edit]Non-member functions

      specializes thestd::swap algorithm
      (function)[edit]

      [edit]Notes

      Feature-test macroValueStdFeature
      __cpp_lib_jthread201911L(C++20)Stop token andjoining thread

      [edit]See also

      (C++11)
      manages a separate thread
      (class)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/thread/jthread&oldid=151008"

      [8]ページ先頭

      ©2009-2025 Movatter.jp