Standard library header <threads.h> (C11)
From cppreference.net
Este encabezado es parte de la biblioteca de soporte de concurrencia y proporciona soporte para hilos, exclusión mutua, variables de condición y almacenamientos específicos de hilo.
Contenidos |
Hilos
thrd_t
|
tipo de objeto completo definido por la implementación que identifica un hilo |
|
(C11)
|
crea un hilo
(función) |
|
(C11)
|
comprueba si dos identificadores se refieren al mismo hilo
(función) |
|
(C11)
|
obtiene el identificador del hilo actual
(función) |
|
(C11)
|
suspende la ejecución del hilo llamante durante el período de tiempo dado
(función) |
|
(C11)
|
cede el segmento de tiempo actual
(función) |
|
(C11)
|
termina el hilo llamante
(función) |
|
(C11)
|
separa un hilo
(función) |
|
(C11)
|
bloquea hasta que un hilo termina
(función) |
|
indica un estado de error de hilo
(constante) |
|
|
thrd_start_t
(C11)
|
un typedef del tipo de puntero a función
int
(
*
)
(
void
*
)
, utilizado por
thrd_create
(typedef) |
Exclusión mutua
mtx_t
|
identificador de mutex |
|
(C11)
|
crea un mutex
(función) |
|
(C11)
|
bloquea hasta adquirir un mutex
(función) |
|
(C11)
|
bloquea hasta adquirir un mutex o agotar el tiempo
(función) |
|
(C11)
|
adquiere un mutex o retorna sin bloquear si ya está bloqueado
(función) |
|
(C11)
|
libera un mutex
(función) |
|
(C11)
|
destruye un mutex
(función) |
|
(C11)
(C11)
(C11)
|
define el tipo de un mutex
(enumeración) |
Ejecución única |
|
|
(C11)
|
llama a una función exactamente una vez
(función) |
Variables de condición
cnd_t
|
identificador de variable de condición |
|
(C11)
|
crea una variable de condición
(función) |
|
(C11)
|
desbloquea un hilo bloqueado en una variable de condición
(función) |
|
(C11)
|
desbloquea todos los hilos bloqueados en una variable de condición
(función) |
|
(C11)
|
bloquea en una variable de condición
(función) |
|
(C11)
|
bloquea en una variable de condición, con un tiempo de espera
(función) |
|
(C11)
|
destruye una variable de condición
(función) |
Almacenamiento local de hilo
|
(C11)
(eliminado en C23)
|
macro de conveniencia para el especificador de clase de almacenamiento
_Thread_local
(macro de palabra clave) |
tss_t
|
puntero de almacenamiento específico del hilo |
|
(C11)
|
número máximo de veces que se llaman los destructores
(constante macro) |
tss_dtor_t
(C11)
|
tipo de puntero a función
void
(
*
)
(
void
*
)
, utilizado para el destructor TSS
(typedef) |
|
(C11)
|
crea un puntero de almacenamiento específico del hilo con un destructor dado
(función) |
|
(C11)
|
lee del almacenamiento específico del hilo
(función) |
|
(C11)
|
escribe en el almacenamiento específico del hilo
(función) |
|
(C11)
|
libera los recursos mantenidos por un puntero específico del hilo dado
(función) |
Sinopsis
#define __STDC_NO_THREADS__ 202311L #define ONCE_FLAG_INIT /* ver descripción */ #define TSS_DTOR_ITERATIONS /* ver descripción */ typedef /* ver descripción */ cnd_t; typedef /* ver descripción */ thrd_t; typedef /* ver descripción */ tss_t; typedef /* ver descripción */ mtx_t; typedef /* ver descripción */ tss_dtor_t; typedef /* ver descripción */ thrd_start_t; #define mtx_plain /* ver descripción */ #define mtx_recursive /* ver descripción */ #define mtx_timed /* ver descripción */ #define once_flag /* ver descripción */ #define thrd_busy /* ver descripción */ #define thrd_error /* ver descripción */ #define thrd_nomem /* ver descripción */ #define thrd_success /* ver descripción */ #define thrd_timedout /* ver descripción */ void call_once(once_flag* flag, void (*func)(void)); int cnd_broadcast(cnd_t* cond); void cnd_destroy(cnd_t* cond); int cnd_init(cnd_t* cond); int cnd_signal(cnd_t* cond); int cnd_timedwait(cnd_t* restrict cond, mtx_t* restrict mtx, const struct timespec* restrict ts); int cnd_wait(cnd_t* cond, mtx_t* mtx); void mtx_destroy(mtx_t* mtx); int mtx_init(mtx_t* mtx, int type); int mtx_lock(mtx_t* mtx); int mtx_timedlock(mtx_t* restrict mtx, const struct timespec* restrict ts); int mtx_trylock(mtx_t* mtx); int mtx_unlock(mtx_t* mtx); int thrd_create(thrd_t* thr, thrd_start_t func, void* arg); thrd_t thrd_current(void); int thrd_detach(thrd_t thr); int thrd_equal(thrd_t thr0, thrd_t thr1); [[noreturn]] void thrd_exit(int res); int thrd_join(thrd_t thr, int* res); int thrd_sleep(const struct timespec* duration, struct timespec* remaining); void thrd_yield(void); int tss_create(tss_t* key, tss_dtor_t dtor); void tss_delete(tss_t key); void* tss_get(tss_t key); int tss_set(tss_t key, void* val);