thrd_exit
来自 cppreference.com
在头文件 <threads.h> 中定义 |
||
_Noreturn void thrd_exit( int res ); |
(自 C11) (直到 C23) |
|
[[noreturn]] void thrd_exit( int res ); |
(自 C23) | |
首先,对于每个使用非空析构函数创建的线程特定存储键,并且关联的值为非空(见 tss_create),thrd_exit
将与键关联的值设置为 NULL,然后使用键的先前值调用析构函数。析构函数调用的顺序是不确定的。
如果在此之后,仍然存在具有非空析构函数和值的键(例如,如果析构函数执行了 tss_set),则此过程会重复执行,最多 TSS_DTOR_ITERATIONS 次。
最后,thrd_exit
函数终止调用线程的执行,并将其结果代码设置为 res
。
如果程序中的最后一个线程使用 thrd_exit
终止,则整个程序将终止,就像通过调用 exit 并使用 EXIT_SUCCESS 作为参数一样(因此,由 atexit 注册的函数将在最后一个线程的上下文中执行)。
内容 |
[编辑] 参数
res | - | 要返回的结果值 |
[编辑] 返回值
(无)
[编辑] 参考资料
- C17 标准(ISO/IEC 9899:2018)
- 7.26.5.5 thrd_exit 函数(p: 280)
- C11 标准(ISO/IEC 9899:2011)
- 7.26.5.5 thrd_exit 函数(p: 384)
[编辑] 另请参见
(C11) |
阻塞,直到线程终止 (函数) |
(C11) |
分离线程 (函数) |