Standard library header <threads.h> (C11)
From cppreference.net
Cet en-tête fait partie de la bibliothèque de support de concurrence et fournit le support pour les threads, l'exclusion mutuelle, les variables conditionnelles et les stockages spécifiques aux threads.
Table des matières |
Fils d'exécution
thrd_t
|
type d'objet complet défini par l'implémentation identifiant un thread |
|
(C11)
|
crée un thread
(fonction) |
|
(C11)
|
vérifie si deux identifiants se réfèrent au même thread
(fonction) |
|
(C11)
|
obtient l'identifiant du thread courant
(fonction) |
|
(C11)
|
suspend l'exécution du thread appelant pour une période de temps donnée
(fonction) |
|
(C11)
|
abandonne la tranche de temps courante
(fonction) |
|
(C11)
|
termine le thread appelant
(fonction) |
|
(C11)
|
détache un thread
(fonction) |
|
(C11)
|
bloque jusqu'à la terminaison d'un thread
(fonction) |
|
indique un statut d'erreur de thread
(constante) |
|
|
thrd_start_t
(C11)
|
un typedef du type pointeur de fonction
int
(
*
)
(
void
*
)
, utilisé par
thrd_create
(typedef) |
Exclusion mutuelle
mtx_t
|
identifiant de mutex |
|
(C11)
|
crée un mutex
(fonction) |
|
(C11)
|
bloque jusqu'à l'obtention du verrou d'un mutex
(fonction) |
|
(C11)
|
bloque jusqu'à l'obtention du verrou d'un mutex ou expiration du délai
(fonction) |
|
(C11)
|
verrouille un mutex ou retourne sans bloquer s'il est déjà verrouillé
(fonction) |
|
(C11)
|
déverrouille un mutex
(fonction) |
|
(C11)
|
détruit un mutex
(fonction) |
|
(C11)
(C11)
(C11)
|
définit le type d'un mutex
(énumération) |
Appel unique |
|
|
(C11)
|
appelle une fonction exactement une fois
(fonction) |
Variables de condition
cnd_t
|
identifiant de variable de condition |
|
(C11)
|
crée une variable de condition
(fonction) |
|
(C11)
|
débloque un thread bloqué sur une variable de condition
(fonction) |
|
(C11)
|
débloque tous les threads bloqués sur une variable de condition
(fonction) |
|
(C11)
|
se bloque sur une variable de condition
(fonction) |
|
(C11)
|
se bloque sur une variable de condition, avec un délai d'expiration
(fonction) |
|
(C11)
|
détruit une variable de condition
(fonction) |
Stockage local au thread
|
(C11)
(supprimé en C23)
|
macro de commodité pour le spécificateur de classe de stockage
_Thread_local
(macro de mot-clé) |
tss_t
|
pointeur de stockage spécifique au thread |
|
(C11)
|
nombre maximum d'appels aux destructeurs
(constante macro) |
tss_dtor_t
(C11)
|
type de pointeur de fonction
void
(
*
)
(
void
*
)
, utilisé pour le destructeur TSS
(typedef) |
|
(C11)
|
crée un pointeur de stockage spécifique au thread avec un destructeur donné
(fonction) |
|
(C11)
|
lit depuis le stockage spécifique au thread
(fonction) |
|
(C11)
|
écrit dans le stockage spécifique au thread
(fonction) |
|
(C11)
|
libère les ressources détenues par un pointeur spécifique au thread donné
(fonction) |
Synopsis
#define __STDC_NO_THREADS__ 202311L #define ONCE_FLAG_INIT /* voir description */ #define TSS_DTOR_ITERATIONS /* voir description */ typedef /* voir description */ cnd_t; typedef /* voir description */ thrd_t; typedef /* voir description */ tss_t; typedef /* voir description */ mtx_t; typedef /* voir description */ tss_dtor_t; typedef /* voir description */ thrd_start_t; #define mtx_plain /* voir description */ #define mtx_recursive /* voir description */ #define mtx_timed /* voir description */ #define once_flag /* voir description */ #define thrd_busy /* voir description */ #define thrd_error /* voir description */ #define thrd_nomem /* voir description */ #define thrd_success /* voir description */ #define thrd_timedout /* voir description */ 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);