c++ - pthread_join() 在 C++ 中使用 pthreads 的逻辑错误

标签 c++ pthreads

我正在学习 C++ 中的 pthreads。我卡在某个点上并在网上搜索,但是所有页面中都存在相同的句子,但是没有对这句话进行任何解释。我无法理解下面的句子。

一个加入线程可以匹配一个 pthread_join() 调用。在同一线程上尝试多个连接是逻辑错误。

来自此链接:http://www.bogotobogo.com/cplusplus/multithreading_pthread.php

你能解释一下这句话的意思吗?你能举例说明逻辑错误是什么吗?

什么是“加入线程”?也就是说,主线程创建一个子线程,主线程等待子线程完成它的工作。好的。在这种情况下,加入线程是主线程还是子线程?

最佳答案

例如,如果 main() 线程两次加入一个线程。

 pthread_t t1;

 pthread_create(&t1, ....);
 pthread_join(t1, NULL); 
 pthread_join(t1, NULL); /* The quoted sentence refers to cases like this */

这同样适用于任何其他线程。

关于c++ - pthread_join() 在 C++ 中使用 pthreads 的逻辑错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28796044/

相关文章:

c++ - 带有 lambda 函数的 ptr_fun

c++ - 使用没有默认构造函数的类/类型初始化自定义容器

c++ - 在 C++ 中处理未终止的 char 数组有多容易?

c++ - 锁定步进 pthread 互斥锁

我可以将文件描述符限制设置为每线程限制吗?

c++ - 对类模板成员函数的 undefined reference

c++ - 在cuda中使用邻接表分配图形?

多线程复制 block 设备

c - 如何解锁wgetch?

c++ - pthread_join 错误,从线程创建线程