命名空间
变体
操作

thrd_exit

来自 cppreference.com
< 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)

[编辑] 另请参见

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