pthread_join() 在 C++ 中使用 pthreads 的逻辑错误
pthread_join() logical error using pthreads in c++
我正在学习 C++ 中的 pthreads。我卡在某个点上并在网上搜索,但是所有页面中都存在相同的句子,但是没有对这句话进行任何解释。我看不懂下面的句子。
一个加入线程可以匹配一个 pthread_join() 调用。在同一线程上尝试多个连接是逻辑错误。
来自这个 link : http://www.bogotobogo.com/cplusplus/multithreading_pthread.php
你能解释一下这句话的意思吗?你能举例说明逻辑错误是什么吗?
什么是"joining thread"?也就是说,主线程创建一个子线程,主线程等待子线程完成它的工作。好的。在这种情况下,加入线程是主线程还是子线程?
例如,如果 main() 线程两次加入一个线程。
pthread_t t1;
pthread_create(&t1, ....);
pthread_join(t1, NULL);
pthread_join(t1, NULL); /* The quoted sentence refers to cases like this */
同样适用于任何其他线程。
很简单:您只能加入一个话题一次。
main worker 1
|
|
pthread_create +----------->+
| |
| |
pthread_join ⁞ |
| ⁞ | (done now)
┴ +<-----------+
|
|
(etc).
我正在学习 C++ 中的 pthreads。我卡在某个点上并在网上搜索,但是所有页面中都存在相同的句子,但是没有对这句话进行任何解释。我看不懂下面的句子。
一个加入线程可以匹配一个 pthread_join() 调用。在同一线程上尝试多个连接是逻辑错误。
来自这个 link : http://www.bogotobogo.com/cplusplus/multithreading_pthread.php
你能解释一下这句话的意思吗?你能举例说明逻辑错误是什么吗?
什么是"joining thread"?也就是说,主线程创建一个子线程,主线程等待子线程完成它的工作。好的。在这种情况下,加入线程是主线程还是子线程?
例如,如果 main() 线程两次加入一个线程。
pthread_t t1;
pthread_create(&t1, ....);
pthread_join(t1, NULL);
pthread_join(t1, NULL); /* The quoted sentence refers to cases like this */
同样适用于任何其他线程。
很简单:您只能加入一个话题一次。
main worker 1
|
|
pthread_create +----------->+
| |
| |
pthread_join ⁞ |
| ⁞ | (done now)
┴ +<-----------+
|
|
(etc).