std::jthread Class Reference
Concurrency » Threads

`#include <thread>`

## Public Types

using | id
using | native_handle_type

## Public Member Functions

template<typename _Callable, typename... _Args, typename = enable_if_t<!is_same_v<remove_cvref_t<_Callable>, jthread>>>
| jthread (_Callable &&__f, _Args &&... __args)
| jthread (const jthread &)=delete
| jthread (jthread &&) noexcept=default
void | detach ()
id | get_id () const noexcept
stop_source | get_stop_source () noexcept
stop_token | get_stop_token () const noexcept
void | join ()
bool | joinable () const noexcept
native_handle_type | native_handle ()
jthread & | operator= (const jthread &)=delete
jthread & | operator= (jthread &&__other) noexcept
bool | request_stop () noexcept
void | swap (jthread &__other) noexcept

## Static Public Member Functions

static unsigned | hardware_concurrency () noexcept

## Friends

void | swap (jthread &__lhs, jthread &__rhs) noexcept

## Detailed Description

A thread with cancellation and automatic joining.

Unlike std::thread, destroying a joinable std::jthread will not terminate the process. Instead, it will try to request its thread to stop, then will join it.

A std::jthread has a std::stop_source member which will be passed as the first argument to the callable that runs in the new thread (as long as the callable will accept that argument). That can then be used to send a stop request that the new thread can test for.

Since
  C++20

Definition at line 132 of file thread.

## Member Typedef Documentation

## id

using std::jthread::id

Definition at line 135 of file thread.

## native_handle_type

using std::jthread::native_handle_type

Definition at line 136 of file thread.

## Constructor & Destructor Documentation

## jthread() [1/2]

std::jthread::jthread | ( |  | ) |

inline noexcept

Definition at line 138 of file thread.

## jthread() [2/2]

template<typename _Callable, typename... _Args, typename = enable_if_t<!is_same_v<remove_cvref_t<_Callable>, jthread>>>

std::jthread::jthread | ( | _Callable && | __f,
|  | _Args &&... | __args )

inline explicit

Definition at line 146 of file thread.

## ~jthread()

std::jthread::~jthread | ( |  | ) |

inline

Definition at line 154 of file thread.

## Member Function Documentation

## detach()

void std::jthread::detach | ( |  | ) |

inline

Definition at line 193 of file thread.

## get_id()

id std::jthread::get_id | ( |  | ) | const

inline nodiscard noexcept

Definition at line 199 of file thread.

## get_stop_source()

stop_source std::jthread::get_stop_source | ( |  | ) |

inline nodiscard noexcept

Definition at line 217 of file thread.

## get_stop_token()

stop_token std::jthread::get_stop_token | ( |  | ) | const

inline nodiscard noexcept

Definition at line 223 of file thread.

## hardware_concurrency()

unsigned std::jthread::hardware_concurrency | ( |  | ) |

inline static nodiscard noexcept

Definition at line 211 of file thread.

## join()

void std::jthread::join | ( |  | ) |

inline

Definition at line 187 of file thread.

## joinable()

bool std::jthread::joinable | ( |  | ) | const

inline nodiscard noexcept

Definition at line 181 of file thread.

## native_handle()

native_handle_type std::jthread::native_handle | ( |  | ) |

inline nodiscard

Definition at line 205 of file thread.

## operator=()

jthread & std::jthread::operator= | ( | jthread && | __other | ) |

inline noexcept

Definition at line 167 of file thread.

## request_stop()

bool std::jthread::request_stop | ( |  | ) |

inline noexcept

Definition at line 228 of file thread.

## swap()

void std::jthread::swap | ( | jthread & | __other | ) |

inline noexcept

Definition at line 174 of file thread.

## Friends And Related Symbol Documentation

## swap

void swap | ( | jthread & | __lhs,
|  | jthread & | __rhs )

friend

Definition at line 233 of file thread.

The documentation for this class was generated from the following file:

- thread