Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::jthread(3)		      C++ Standard Libary	       std::jthread(3)

NAME
       std::jthread - std::jthread

Synopsis
	  Defined in header <thread>
	  class	jthread;	      (since C++20)

	  The  class  jthread  represents a single thread of execution.	It has
       the same	general
	  behavior as std::thread, except that jthread	automatically  rejoins
       on destruction,
	  and can be cancelled/stopped in certain situations.

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

	  Unlike std::thread, the jthread logically holds an internal  private
       member of type
	  std::stop_source,  which  maintains a	shared stop-state. The jthread
       constructor
	  accepts a function that takes	a std::stop_token as its  first	 argu-
       ment, which will	be
	  passed  in by	the jthread from its internal 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	repre-
       sent any	thread
	  (after  default  construction,  move	from,  detach, or join), and a
       thread of execution
	  may be not associated	with any jthread objects (after	detach).

	  No two std::jthread objects may represent the	same thread of	execu-
       tion; std::jthread
	  is  not CopyConstructible or CopyAssignable, although	it is MoveCon-
       structible and
	  MoveAssignable.

Member types
	  Member type				 Definition
	  id					 std::thread::id
	  native_handle_type(not  always   present)   std::thread::native_han-
       dle_type

Member functions
	  constructor	       constructs new jthread object
			       (public member function)
			       if joinable() is	true, calls request_stop() and
       then join(); in
	  destructor	       either case destructs the jthread object.
			       (public member function)
	  operator=	       moves the jthread object
			       (public member function)

Observers
			       checks whether the thread is joinable, i.e. po-
       tentially running
	  joinable	       in parallel context
			       (public member function)
	  get_id	       returns the id of the thread
			       (public member function)
	  native_handle		returns	 the underlying	implementation-defined
       thread handle
			       (public member function)
	  hardware_concurrency returns the number of concurrent	 threads  sup-
       ported by the
	  [static]	       implementation
			       (public static member function)

Operations
	  join		       waits for the thread to finish its execution
			       (public member function)
			       permits	the  thread  to	 execute independently
       from the	thread
	  detach	       handle
			       (public member function)
	  swap		       swaps two jthread objects
			       (public member function)
		Stop token handling
			       returns a stop_source  object  associated  with
       the shared stop
	  get_stop_source      state of	the thread
			       (public member function)
			       returns a stop_token associated with the	shared
       stop state of
	  get_stop_token       the thread
			       (public member function)
	  request_stop		requests  execution  stop  via the shared stop
       state of	the thread
			       (public member function)

Non-member functions
	  swap(std::jthread) specializes the std::swap algorithm
	  (C++20)	     (function)

Notes
	  Feature-test macro: __cpp_lib_jthread

See also
	  thread  manages a separate thread
	  (C++11) (class)

http://cppreference.com		  2022.07.31		       std::jthread(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::jthread&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help