The Wayback Machine - https://web.archive.org/web/20210905173518/https://es.cppreference.com/w/cpp/thread
Espacios de nombres
Variantes
Acciones

Biblioteca de apoyo de hilos/subprocesos

De cppreference.com
< cpp
 
 
Biblioteca de apoyo de hilos
Hilos/subprocesos
(C++11)
(C++20)
(C++20)
this_thread namespace
(C++11)
(C++11)
(C++11)
Exclusión mutua
(C++11)
Gestión de cerrojos genérica
(C++11)
(C++11)
(C++11)
(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)
 

C++ incluye apoyo integrado para hilos, exclusión mutua, variables de condición y futuros.

Contenido

[editar] Hilos

Los hilos permiten a los programas ejecutar a lo largo de varios núcleos de procesador.

Definido en el archivo de encabezado <thread>
(C++11)
Gestiona un hilo/subproceso independiente.
(clase) [editar]
(C++20)
std::thread con soporte para unión y cancelación automática.
(clase) [editar]
Funciones que gestionan el hilo actual
Definido en el espacio de nombres this_thread
(C++11)
Sugiere a la implementación que reprograme la ejecución de hilos.
(función) [editar]
(C++11)
Devuelve el identificador de hilo/subproceso del hilo/subproceso actual.
(función) [editar]
(C++11)
Detiene la ejecución del hilo/subproceso actual por una duración de tiempo especificada.
(función) [editar]
Detiene la ejecución del hilo/subproceso actual hasta que ocurra un punto de tiempo especificado.
(función) [editar]

Cancelación de hilos

Los tipos stop_XXX están designados para habilitar la cancelación de hilos para std::jthread, aunque pueden usarse independientemente de std::jthread (por ejemplo, para interrumpir las funciones de espera de std::condition_variable_any, o para una implementación de gestión de hilos personalizada). De hecho, ni siquiera necesitan "detener" nada, pero en cambio se pueden usar para un gatillo de invocación de función única segura contra hilos.

Definido en el archivo de encabezado <stop_token>
Una interfaz para consultar si se ha hecho una solicitud de cancelación de un std::jthread.
(clase) [editar]
Clase que representa una solicitud para detener uno o más std::jthreads.
(clase) [editar]
Una interfaz para registrar devoluciones de llamada al cancelar un std::jthread.
(plantilla de clase) [editar]
(desde C++20)

[editar] Acceso al tamaño de la caché

Definido en el archivo de encabezado <new>
Desplazamiento mínimo para evitar compartimiento falso (false sharing).
Desplazamiento máximo para promover compartimiento verdadero (true sharing).
(constante) [editar]

[editar] Exclusión mutua

Los algoritmos de exclusión mutua previenen que el acceso simultáneo de varios hilos a recursos compartidos. Esto previene carreras de datos y proporciona soporte para la sincronización entre hilos.

Definido en el archivo de encabezado <mutex>
(C++11)
Proporciona servicios de exclusión mutua básicos.
(clase) [editar]
Proporciona un servicio de exclusión mutua que implementa bloqueo con un tiempo de espera.
(clase) [editar]
Proporciona un servicio de bloqueo mutuo que puede ser bloqueado recursivamente por el mismo hilo/subproceso.
(clase) [editar]
Proporciona un servicio de exclusión mutua que puede ser bloqueado recursivamente por el mismo hilo e implementa bloqueo con un tiempo de espera.
(clase) [editar]
Definido en el archivo de encabezado <shared_mutex>
Proporciona un servicio de exclusión mutua compartida.
(clase) [editar]
Proporciona un servicio de exclusión mutua compartida e implementa bloqueo con un tiempo de espera.
(clase) [editar]
Gestión de cierre de exclusión mutua genérica
Definido en el archivo de encabezado <mutex>
Implementa un envoltorio de propiedad de mutex estrictamente basado en un ámbito.
(plantilla de clase) [editar]
Envoltorio RAII que evita bloqueo mutuo para múltiples mutex.
(plantilla de clase) [editar]
Implementa un envoltorio de propiedad de mutex movible.
(plantilla de clase) [editar]
Implementa un envoltorio de propiedad de un mutex movible.
(plantilla de clase) [editar]
Tipo de etiqueta utilizado para especificar la estrategia de bloqueo.
(clase) [editar]
Constantes de etiqueta que se utilizan para la estrategia de bloqueo.
(constante) [editar]
Algoritmos de bloqueo genéricos
(C++11)
Intenta tomar posesión de los mutex mediante llamadas repetidas a try_lock.
(plantilla de función) [editar]
(C++11)
Bloquea los mutex especificados. Se bloquea si ninguno está disponible.
(plantilla de función) [editar]
Llamar una vez
(C++11)
Objeto auxiliar para asegurarse que call_once invoque la función una sola vez.
(clase) [editar]
(C++11)
Invoca una función una sola vez inclusive si se llama desde varios hilos.
(plantilla de función) [editar]

[editar] Variables de condición

Una variable de condición es una primitiva de sincronización que facilita que múltiples hilos puedan comunicarse entre sí. Permite que algunos hilos esperen (posiblemente con un tiempo máximo de espera) hasta que llegue la notificación de otro hilo para que puedan continuar. Una variable de condición siempre está asociada a un mutex.

Definido en el archivo de encabezado <condition_variable>
Proporciona una variable de condición asociada con un std::unique_lock.
(clase)
Proporciona una variable de condición asociada con cualquier tipo de cerrojo.
(clase)
Planifica una llamada a notify_all para que se invoque cuando éste hilo haya terminado completamente.
(función)
(C++11)
Lista los resultados posibles de esperas cronometradas en variables de condición.
(enum)

Semáforos

Un semáforo (semaphore) es una primitiva de sincronización de peso ligero utilizado para restringir el acceso concurrente a un recurso compartido. Cuando es posible usar ambos, un semáforo es más eficiente que una variable de condición.

Definido en el archivo de encabezado <semaphore>
Semáforo que modela un conteo de recurso no negativo.
(plantilla de clase) [editar]
Semáforo que tiene solamente dos estados.
(typedef) [editar]

Pestillos y barreras

Los pestillos (latches) y las barreras (barriers) son mecanismos de coordinación de hilos que permiten que cualquier número de hilos se bloqueen hasta que un número esperado de hilos llegue a la barrera. Los pestillos no pueden reutilizarse, mientras que las barreras pueden utilizarse repetidamente.

Definido en el archivo de encabezado <latch>
(C++20)
Barrera de hilos de un solo uso.
(clase) [editar]
Definido en el archivo de encabezado <barrier>
(C++20)
Barrera de hilos reutilizable.
(plantilla de clase) [editar]


(desde C++20)

[editar] Futuros

La biblioteca estándar proporciona servicios para la obtención de los valores que se devuelven y para atrapar las excepciones producidas por tareas asincrónas (es decir, las funciones puestas en marcha por hilos). Estos valores se comunican mediante un "estado compartido", en el que las tareas asíncronas pueden escribir su valor de retorno o almacenar una excepción, la cual puede examinarse, esperar por ella, y de otra forma manipulada por otros hilos que mantienen instancias de std::future o std::shared_future que referencian ese estado compartido.

Definido en el archivo de encabezado <future>
(C++11)
Almacena un valor para recuperación asíncrona.
(plantilla de clase) [editar]
Empaqueta una función para almacenar su valor de retorno para la recuperación asíncrona.
(plantilla de clase) [editar]
(C++11)
Espera a un valor que se establece asíncronamente.
(plantilla de clase) [editar]
Espera a un valor (posiblemente referenciado por otros futuros) que se ha establecido asíncronamente.
(plantilla de clase) [editar]
(C++11)
Ejecuta una función asíncronamente (posiblemente en un nuevo hilo) y devuelve un std::future que contendrá el resultado.
(plantilla de función) [editar]
(C++11)
Especifica la política de lanzamiento de std::async.
(enum) [editar]
Especifica los resultados de esperas cronometradas realizadas en std::future y std::shared_future.
(enum) [editar]
Errores futuros
Informa de un error relacionado con futuros o promesas.
(clase) [editar]
Identifica la categoría de error del futuro.
(función) [editar]
Identifica los códigos de error del futuro.
(enum) [editar]

[editar] Véase también

Documentación de C de Biblioteca de apoyo de hilos/subprocesos