当前位置: C语言 -- 标准库 -- <threads.h>

<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 设置线程专属存储的函数。