std:: stop_token
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Modifiers | ||||
| Observers | ||||
| Non-member functions | ||||
|
Definido en el encabezado
<stop_token>
|
||
|
class
stop_token
;
|
(desde C++20) | |
La clase
stop_token
proporciona los medios para verificar si se ha realizado o se puede realizar una solicitud de parada, para su objeto
std::stop_source
asociado. Esencialmente es una "vista" segura para hilos del estado de parada asociado.
El
stop_token
también puede pasarse al constructor de
std::stop_callback
, de modo que la devolución de llamada se invocará si la
stop_token
's asociada
std::stop_source
es solicitada para detenerse. Y
stop_token
puede pasarse a las funciones de espera interrumpibles de
std::condition_variable_any
, para interrumpir la espera de la variable de condición si se solicita la detención.
Contenidos |
Plantillas de alias de miembro
| Tipo | Definición |
| callback_type < Callback > (desde C++26) | std:: stop_callback < Callback > |
Funciones miembro
construye un nuevo objeto
stop_token
(función miembro pública) |
|
destruye el objeto
stop_token
(función miembro pública) |
|
asigna el objeto
stop_token
(función miembro pública) |
|
Modificadores |
|
intercambia dos objetos
stop_token
(función miembro pública) |
|
Observadores |
|
|
verifica si se ha solicitado detener el estado de parada asociado
(función miembro pública) |
|
|
verifica si se puede solicitar detener el estado de parada asociado
(función miembro pública) |
|
Funciones no miembro
|
(C++20)
|
compara dos objetos
std::stop_token
(función) |
|
(C++20)
|
especializa el algoritmo
std::swap
(función) |
Notas
Un objeto
stop_token
generalmente no se construye de forma independiente, sino que se obtiene de un
std::jthread
o un
std::stop_source
. Esto hace que comparta el mismo estado de parada asociado que el
std::jthread
o el
std::stop_source
.
| Macro de prueba de características | Valor | Std | Característica |
|---|---|---|---|
__cpp_lib_jthread
|
201911L
|
(C++20) | Token de parada y hilo de unión |
Ejemplo
#include <iostream> #include <thread> using namespace std::literals::chrono_literals; void f(std::stop_token stop_token, int value) { while (!stop_token.stop_requested()) { std::cout << value++ << ' ' << std::flush; std::this_thread::sleep_for(200ms); } std::cout << std::endl; } int main() { std::jthread thread(f, 5); // imprime 5 6 7 8... durante aproximadamente 3 segundos std::this_thread::sleep_for(3s); // El destructor de jthread llama a request_stop() y join(). }
Salida posible:
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19