Thread support library

线程支持库

如果编译器定义宏常量__STDC_NO_THREADS __(C11),则不会提供头文件<threads.h>和此处列出的所有名称。

线程

| 在头文件<threads.h>中定义 |

|:----|

| thrd_t | 实现定义的标识线程的完整对象类型|

| thrd_create(C11)| 创建一个线程(函数)|

| thrd_equal(C11)| 检查两个标识符是否引用同一个线程(函数)|

| thrd_current(C11)| 获取当前线程标识符(函数)|

| thrd_sleep(C11)| 暂停执行调用线程一段时间(函数)|

| thrd_yield(C11)| 产生当前时间片(函数)|

| thrd_exit(C11)| 终止调用线程(函数)|

| thrd_detach(C11)| 分离线程(函数)|

| thrd_join(C11)| 直到线程终止(函数)|为止

| thrd_successthrd_timedoutthrd_busythrd_nomemthrd_error(C11)| 表示线程错误状态(常量)|

| thrd_start_t(C11)| 函数指针类型int(*)(void *)的typedef,由thrd_create(typedef)使用|

相互排斥

| 在头文件<threads.h>中定义 |

|:----|

| mtx_t | mutex 标识符|

| mtx_init(C11)| 创建一个mutex(函数)|

| mtx_lock(C11)| 阻塞直到锁定一个 mutex(函数)|

| mtx_timedlock(C11)| 阻塞直到锁定互斥锁或超时(函数)|

| mtx_trylock(C11)| 如果已锁定(功能),则锁定互斥锁或返回而不阻塞|

| mtx_unlock(C11)| 解锁互斥(函数)|

| mtx_destroy(C11)| 破坏一个互斥(函数)|

| mtx_plainmtx_recursivemtx_timed(C11)(C11)(C11)| 定义互斥(枚举)的类型|

| 一次调用 |

| call_once(C11)| 只需调用一次函数(function)|

可变条件

| 在头文件<threads.h> 中定义 |

|:----|

| cnd_t | 条件变量标识符|

| cnd_init(C11)| 创建一个条件变量(函数)|

| cnd_signal(C11)| 取消阻塞条件变量(函数)上的一个线程|

| cnd_broadcast(C11)| 取消阻塞条件变量(函数)上的所有线程|

| cnd_wait(C11)| 块上的条件变量(函数)|

| cnd_timedwait(C11)| 使用超时(函数)在条件变量上阻塞|

| cnd_destroy(C11)| 破坏条件变量(函数)|

线程本地存储

| 在头文件<threads.h> 中定义 |

|:----|

| thread_local(C11)| 线程本地类型宏(宏常量)|

| tss_t | 线程特定的存储指针 |

| TSS_DTOR_ITERATIONS(C11)| 调用析构函数的最大次数(宏常量)|

| tss_dtor_t | 函数指针类型void(*)(void *),用于TSS析构函数 |

| tss_create(C11)| 用给定的析构函数(函数)创建线程特定的存储指针|

| tss_get(C11)| 从线程专有存储(函数)读取|

| tss_set(C11)| 写入线程专有存储(函数)|

| tss_delete(C11)| 释放给定线程指针(函数)所持有的资源|

保留标识符

函数名称,类型名称和以cnd_,mtx_,thrd_或tss_开头的枚举常量以及小写字母可以添加到C标准将来修订版中的<threads.h>头中的声明中,并且可移植程序不应该使用这些标识符。

参考

  • C11标准(ISO / IEC 9899:2011):

扩展内容

| 线程支持库的C ++文档 |

|:----|

© cppreference.com