Thread support library
From cppreference.com
                    
                                        
                    < c
                    
                                                            
                    If the macro constant __STDC_NO_THREADS__(C11) is defined by the compiler, the header <threads.h> and all of the names listed here are not provided.
Threads
|   Defined in header  
<threads.h>  | |
  thrd_t
 | 
implementation-defined complete object type identifying a thread | 
|    (C11)  | 
   creates a thread   (function)  | 
|    (C11)  | 
   checks if two identifiers refer to the same thread   (function)  | 
|    (C11)  | 
   obtains the current thread identifier   (function)  | 
|    (C11)  | 
   suspends execution of the calling thread for the given period of time   (function)  | 
|    (C11)  | 
   yields the current time slice   (function)  | 
|    (C11)  | 
   terminates the calling thread   (function)  | 
|    (C11)  | 
   detaches a thread   (function)  | 
|    (C11)  | 
   blocks until a thread terminates   (function)  | 
|    indicates a thread error status   (constant)  | |
|    thrd_start_t (C11)  | 
   a typedef of the function pointer type int(*)(void*), used by thrd_create   (typedef)  | 
Mutual exclusion
|   Defined in header  
<threads.h>  | |
  mtx_t
 | 
mutex identifier | 
|    (C11)  | 
   creates a mutex   (function)  | 
|    (C11)  | 
   blocks until locks a mutex   (function)  | 
|    (C11)  | 
   blocks until locks a mutex or times out   (function)  | 
|    (C11)  | 
   locks a mutex or returns without blocking if already locked   (function)  | 
|    (C11)  | 
   unlocks a mutex   (function)  | 
|    (C11)  | 
   destroys a mutex   (function)  | 
|    (C11)(C11)(C11)  | 
   defines the type of a mutex   (enum)  | 
 Call once | |
|    (C11)  | 
   calls a function exactly once   (function)  | 
Condition variables
|   Defined in header  
<threads.h>  | |
  cnd_t
 | 
condition variable identifier | 
|    (C11)  | 
   creates a condition variable   (function)  | 
|    (C11)  | 
   unblocks one thread blocked on a condition variable   (function)  | 
|    (C11)  | 
   unblocks all threads blocked on a condition variable   (function)  | 
|    (C11)  | 
   blocks on a condition variable   (function)  | 
|    (C11)  | 
   blocks on a condition variable, with a timeout   (function)  | 
|    (C11)  | 
   destroys a condition variable   (function)  | 
Thread-local storage
|   Defined in header  
<threads.h>  | |
|    (C11)  | 
   thread local type macro   (keyword macro)  | 
  tss_t
 | 
thread-specific storage pointer | 
|    (C11)  | 
   maximum number of times destructors are called   (macro constant)  | 
  tss_dtor_t
 | 
function pointer type void(*)(void*), used for TSS destructor | 
|    (C11)  | 
   creates thread-specific storage pointer with a given destructor   (function)  | 
|    (C11)  | 
   reads from thread-specific storage   (function)  | 
|    (C11)  | 
   write to thread-specific storage   (function)  | 
|    (C11)  | 
   releases the resources held by a given thread-specific pointer    (function)  | 
Reserved identifiers
Function names, type names, and enumeration constants that begin with either cnd_,
mtx_, thrd_, or tss_, and a lowercase letter may be added to the declarations in the <threads.h> header in future revisions of the C standard, and portable programs should not use those identifiers.
References
- C11 standard (ISO/IEC 9899:2011):
 
- 7.26 Threads <threads.h> (p: 376-387)
 
- 7.31.15 Threads <threads.h> (p: 456)