分离线程的 pthread_create() 线程 ID 可以在堆栈上短暂存在吗?

标签 c pthreads posix

它是否符合 pthread_create() 的线程 ID 参数如果线程分离,函数会在堆栈上吗?例如

void func()
{
    pthread_t thread;
    pthread_create(&thread, NULL, start_func, NULL);
    pthread_detach(thread);
}

或者线程ID变量的消失会导致问题吗?我已阅读该标准,但找不到答案。

最佳答案

基于this answer对于相关问题,我想说即使您不使用 pthread_detach 也是安全的。

由于您将来不会尝试加入它,因此您没有理由需要保留它。

关于分离线程的 pthread_create() 线程 ID 可以在堆栈上短暂存在吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24396307/

相关文章:

签名后的 C++ 参数声明

c - 为什么这个声明的解引用类型双关指针警告是编译器特定的?

c - 在 C 中将字符数组打印为十六进制

c - 与 POSIX 系统上的调度有关的互斥体和线程优先级

c - 如何在 Linux 中使用 POSIX pthreads 将整数从文件写入缓冲区?

协调多个 posix 信号量

c - Nemiver 仅显示 ASM

c - 使用 2 个线程对 2 个数组进行排序比将 2 个数组一一排序需要更多时间

c - pthread_create发生错误时恢复

c - ssize_t 和 ptrdiff_t 有什么区别?