Standard library header <threads.h> (C11)
From cppreference.net
Dieser Header ist Teil der Concurrency Support Library und bietet Unterstützung für Threads, gegenseitigen Ausschluss, Bedingungsvariablen und threadspezifische Speicher.
Inhaltsverzeichnis |
Threads
thrd_t
|
Implementierungsdefinierter vollständiger Objekttyp, der einen Thread identifiziert |
|
(C11)
|
Erstellt einen Thread
(Funktion) |
|
(C11)
|
Prüft, ob zwei Kennungen denselben Thread referenzieren
(Funktion) |
|
(C11)
|
Ermittelt die aktuelle Thread-Kennung
(Funktion) |
|
(C11)
|
Unterbricht die Ausführung des aufrufenden Threads für den angegebenen Zeitraum
(Funktion) |
|
(C11)
|
Gibt das aktuelle Zeitquantum ab
(Funktion) |
|
(C11)
|
Beendet den aufrufenden Thread
(Funktion) |
|
(C11)
|
Trennt einen Thread
(Funktion) |
|
(C11)
|
Blockiert, bis ein Thread terminiert
(Funktion) |
|
Zeigt einen Thread-Fehlerstatus an
(Konstante) |
|
|
thrd_start_t
(C11)
|
Ein Typedef des Funktionszeigertyps
int
(
*
)
(
void
*
)
, verwendet von
thrd_create
(Typedef) |
Gegenseitiger Ausschluss
mtx_t
|
Mutex-Kennung |
|
(C11)
|
erstellt einen Mutex
(Funktion) |
|
(C11)
|
blockiert bis ein Mutex gesperrt ist
(Funktion) |
|
(C11)
|
blockiert bis ein Mutex gesperrt ist oder Timeout erreicht
(Funktion) |
|
(C11)
|
sperrt einen Mutex oder kehrt zurück ohne zu blockieren falls bereits gesperrt
(Funktion) |
|
(C11)
|
entsperrt einen Mutex
(Funktion) |
|
(C11)
|
zerstört einen Mutex
(Funktion) |
|
(C11)
(C11)
(C11)
|
definiert den Typ eines Mutex
(Enumeration) |
Einmaliger Aufruf |
|
|
(C11)
|
ruft eine Funktion genau einmal auf
(Funktion) |
Bedingungsvariablen
cnd_t
|
Bedingungsvariablenkennung |
|
(C11)
|
erstellt eine Bedingungsvariable
(Funktion) |
|
(C11)
|
entblockt einen auf eine Bedingungsvariable wartenden Thread
(Funktion) |
|
(C11)
|
entblockt alle auf eine Bedingungsvariable wartenden Threads
(Funktion) |
|
(C11)
|
blockiert auf einer Bedingungsvariable
(Funktion) |
|
(C11)
|
blockiert auf einer Bedingungsvariable mit Timeout
(Funktion) |
|
(C11)
|
zerstört eine Bedingungsvariable
(Funktion) |
Thread-lokaler Speicher
|
(C11)
(entfernt in C23)
|
Bequemlichkeitsmakro für Speicherklassenspezifizierer
_Thread_local
(Schlüsselwort-Makro) |
tss_t
|
Thread-spezifischer Speicherzeiger |
|
(C11)
|
Maximale Anzahl der Aufrufe von Destruktoren
(Makrokonstante) |
tss_dtor_t
(C11)
|
Funktionszeigertyp
void
(
*
)
(
void
*
)
, verwendet für TSS-Destruktor
(Typdefinition) |
|
(C11)
|
erzeugt einen thread-spezifischen Speicherzeiger mit einem gegebenen Destruktor
(Funktion) |
|
(C11)
|
liest aus thread-spezifischem Speicher
(Funktion) |
|
(C11)
|
schreibt in thread-spezifischen Speicher
(Funktion) |
|
(C11)
|
gibt die Ressourcen eines gegebenen thread-spezifischen Zeigers frei
(Funktion) |
Übersicht
#define __STDC_NO_THREADS__ 202311L #define ONCE_FLAG_INIT /* siehe Beschreibung */ #define TSS_DTOR_ITERATIONS /* siehe Beschreibung */ typedef /* siehe Beschreibung */ cnd_t; typedef /* siehe Beschreibung */ thrd_t; typedef /* siehe Beschreibung */ tss_t; typedef /* siehe Beschreibung */ mtx_t; typedef /* siehe Beschreibung */ tss_dtor_t; typedef /* siehe Beschreibung */ thrd_start_t; #define mtx_plain /* siehe Beschreibung */ #define mtx_recursive /* siehe Beschreibung */ #define mtx_timed /* siehe Beschreibung */ #define once_flag /* siehe Beschreibung */ #define thrd_busy /* siehe Beschreibung */ #define thrd_error /* siehe Beschreibung */ #define thrd_nomem /* siehe Beschreibung */ #define thrd_success /* siehe Beschreibung */ #define thrd_timedout /* siehe Beschreibung */ 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);