命名空间
变体
操作

thrd_exit

来自 cppreference.cn
< c‎ | thread
在头文件 <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)

[编辑] 另请参见

阻塞直到线程终止
(函数) [编辑]
分离线程
(函数) [编辑]