c - 多次加入同一个 pthread

标签 c linux pthreads posix

我程序中的流程调用 pthread_join(thread_id, nullptr); 来自同一调用线程的同一 thread_id 两次。

第一次调用成功返回,但第二次它只是无限期地挂起。文档没有说清楚禁止对同一个thread_id多次调用pthread_join。真的是这样吗?

我知道我可以使用 pthread_cond_t 实现线程同步,但我想先了解 pthread_join 的限制。

最佳答案

看看 documentation for pthread_join - 在注释部分指出:

Joining with a thread that has previously been joined results in undefined behavior.

链接中还有很多关于加入线程(以及其他方面,如果您搜索其他一些 pthread 函数)的其他有用信息。

关于c - 多次加入同一个 pthread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33245113/

相关文章:

c++ - C 代码更改终端文本颜色;如何恢复默认值? Linux

linux - Linux 发行版中的 boost 版本

c - pthread比 “default”版本慢

c - 裸机环境下类似 stdlib 的库? (内存管理和希望 pthread 支持)

c++ - 如何清除gdb命令屏幕?

c - 当子进程通过 ctrl-\中止时,父进程未运行

c - 完美平衡二叉搜索树

regex - 如何在unix中查找和替换

linux - 'perf stat' 结果中的停滞周期前端和停滞周期后端是什么?

c++ - 无法在 pthread_create 函数中将 '*void(MyClass::*)(void*) 转换为 void*(*)(void*)