<threads.h>头文件
<threads.h>头文件是个可选头文件;如果实现定义了宏__STDC_NO_THREADS__,实现不需要提供<threads.h>头文件,也不需要支持<threads.h>头文件的任何功能。
<threads.h>头文件包含<time.h>头文件;在<threads.h>头文件中定义了多个宏,并声明了多个类型、枚举常量、函数,用以支持多线程的执行,具体如下:
类型(type):cnd_t | 保存条件变量标识符的完整对象类型。 |
thrd_t | 保存线程标识符的完整对象类型。 |
tss_t | 保存线程专属存储指针标识符的完整对象类型。 |
mtx_t | 保存互斥标识符的完整对象类型。 |
tss_dtor_t | 析构函数指针类型。 |
thrd_start_t | 函数指针类型。 |
once_flag | 包含供call_once函数使用标志的类型。 |
宏(macro):
thread_local | 表示具有线程存储期限的宏。 |
ONCE_FLAG_INIT | 初始化once_flag类型对象的宏。 |
TSS_DTOR_ITERATIONS | 表示单个线程中析构函数最大调用次数的宏。 |
枚举常量(enumeration constant):
mtx_plain | 表示简单、非递归互斥的枚举常量。 |
mtx_recursive | 表示递归互斥的枚举常量。 |
mtx_timed | 表示支持超时、非递归互斥的枚举常量。 |
thrd_timedout | 表示超时的枚举常量。 |
thrd_success | 表示操作成功的枚举常量。 |
thrd_busy | 表示因请求资源已在使用而操作失败的枚举常量。 |
thrd_error | 表示操作失败的枚举常量。 |
thrd_nomem | 表示因无法分配内存而操作失败的枚举常量。 |
函数(function):
初始化函数:
call_once | 确保函数只被调用一次的函数。 |
cnd_broadcast | 解锁所有等待条件变量的线程的函数。 |
cnd_destroy | 销毁条件变量的函数。 |
cnd_init | 创建条件变量的函数。 |
cnd_signal | 解锁一个等待条件变量的线程的函数。 |
cnd_timedwait | 支持超时等待条件变量的函数。 |
cnd_wait | 等待条件变量的函数。 |
mtx_destroy | 销毁互斥的函数。 |
mtx_init | 创建互斥的函数。 |
mtx_lock | 加锁互斥的函数。 |
mtx_timedlock | 支持超时加锁互斥的函数。 |
mtx_trylock | 尝试加锁互斥的函数。 |
mtx_unlock | 解锁互斥的函数。 |
thrd_create | 创建线程的函数。 |
thrd_current | 标识调用线程的函数。 |
thrd_detach | 分离线程的函数。 |
thrd_equal | 测试两个线程是否为同一线程的函数。 |
thrd_exit | 终止当前线程的函数。 |
thrd_join | 连接线程的函数。 |
thrd_sleep | 暂停当前线程的函数。 |
thrd_yield | 让其它线程运行的函数。 |
tss_create | 创建线程专属存储指针的函数。 |
tss_delete | 释放线程专属存储所用资源的函数。 |
tss_get | 获取线程专属存储的函数。 |
tss_set | 设置线程专属存储的函数。 |