A Cooperatively Interruptible Joining Thread
std::jthread
stands for joining thread. In addition to std::thread
from C++11, std::jthread
can automatically join the started thread and signal an interrupt. Its characteristics are described in the proposal P0660R8: A Cooperatively Interruptible Joining Thread.
Automatically Joining
Here is the non-intuitive behaviour of std::thread
. If a std::thread
is still joinable, std::terminate
is called in its destructor. A thread thr
is joinable if either thr.join()
nor thr.detach()
was called.