Espacios de nombres
Variantes
Acciones

std::jthread

De cppreference.com
< cpp‎ | thread
 
 
Biblioteca de apoyo de concurrencia
Hilos
(C++11)
jthread
(C++20)
Espacio de nombres this_thread
(C++11)
(C++11)
(C++11)
Cancelación cooperativa
Exclusión mutua
(C++11)
Gestión genérica de bloqueo
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Variables de condición
(C++11)
Semáforos
Pestillos y barreras
(C++20)
(C++20)
Futuros
(C++11)
(C++11)
(C++11)
(C++11)
Recuperación segura
(C++26)
Punteros de riesgo
Tipos atómicos
(C++11)
(C++20)
Inicialización de tipos atómicos
(C++11)(en desuso en C++20)
(C++11)(en desuso en C++20)
Orden de memoria
Funciones independientes para operaciones atómicas
Funciones independientes para indicadores atómicos
 
 
Definido en el archivo de encabezado <thread>
class jthread;
(desde C++20)

La clase jthread representa un hilo único de ejecución. Tiene el mismo comportamiento general que std::thread, excepto que jthread se reincorpora automáticamente al ser destruido y se puede cancelar o detener en determinadas situaciones.

Los hilos comienzan a ejecutarse inmediatamente después de la construcción del objeto hilo asociado (pendiente de cualquier retraso en la programación del sistema operativo), comenzando en la función de nivel superior proporcionada como un argumento del constructor. El valor de retorno de la función de nivel superior se ignora y si termina lanzando una excepción, se llama a std::terminate. La función de nivel superior puede comunicar su valor de retorno o una excepción al llamante a través de std::promise o modificando las variables compartidas (que pueden requerir sincronización, véanse std::mutex y std::atomic).

A diferencia de std::thread, el jthread contiene lógicamente un miembro privado interno de tipo std::stop_source, que mantiene un estado de detención compartido. El constructor de jthread acepta una función que toma un std::stop_token como su primer argumento, que será pasado por el jthread desde su stop_source. Esto permite que la función compruebe si se ha solicitado que se detenga durante su ejecución y volver si lo ha hecho.

Los objetos std::jthread también pueden estar en el estado que no representa ningún hilo (después de la construcción por defecto, si fue la fuente de una operación de movimiento, detach, o join), y un hilo de ejecución puede no estar asociado con ningún objeto jthread (después de detach).

No hay dos objetos std::jthread que puedan representar el mismo hilo de ejecución; std::jthread no es CopyConstructible o CopyAssignable, aunque es MoveConstructible y MoveAssignable.

Contenido

[editar] Tipos miembro

Tipo miembro Definición
id std::thread::id
native_handle_type(no siempre está presente) std::thread::native_handle_type [editar]

[editar] Funciones miembro

Construye un nuevo objeto jthread
(función miembro pública) [editar]
Si joinable() es true, llama a request_stop() y luego a join(); en ambos casos destruye el objeto jthread.
(función miembro pública) [editar]
Mueve el objeto jthread
(función miembro pública) [editar]
Observadores
Comprueba si el objeto representa a un hilo actualmente en ejecución o a la espera de recibir un join()
(función miembro pública de std::thread) [editar]
Devuelve el id del hilo
(función miembro pública de std::thread) [editar]
Devuelve el identificador del sistema operativo relativo al hilo
(función miembro pública de std::thread) [editar]
Devuelve el número de hilos simultáneos admitidos por la implementación.
(función miembro estática pública de std::thread) [editar]
Operaciones
Espera a que el hilo termine su ejecución
(función miembro pública de std::thread) [editar]
Permite que el hilo se ejecute independientemente del identificador del hilo
(función miembro pública de std::thread) [editar]
Intercambia dos objetos hilo
(función miembro pública de std::thread) [editar]
Manipulación de tokens de detención
Devuelve un objeto stop_source asociado con el estado de detención compartido del hilo
(función miembro pública) [editar]
Devuelve un objeto stop_token asociado con el estado de detención compartido del hilo/subproceso
(función miembro pública) [editar]
Solicita la detención de la ejecución vía el estado de detención compartido del hilo/subproceso
(función miembro pública) [editar]

[editar] Funciones no miembro

Especializa el algoritmo std::swap.
(función) [editar]

[editar] Notas

Macro de Prueba de característica Valor Estándar Comentario
__cpp_lib_jthread 201911L (C++20) Token de detención e Hilo de unión

[editar] Véase también

(C++11)
Gestiona un hilo/subproceso independiente.
(clase) [editar]