【发布时间】:2021-06-21 04:14:35
【问题描述】:
这里是线程新手,在下面的代码中,我希望线程 A 先完成,然后是线程 B。现在,两个主线程都在等待两个线程完成执行。如何让线程 B 等到线程 A 完成执行。我不是想实现任何目标,这只是我在书中看到的一个简单的编码练习。
#include <iostream>
#include <thread>
using namespace std;
void run1()
{
cout << "Facebook " << endl;
cout << "Facebook: " << this_thread::get_id() << endl;
}
void run2()
{
cout << "Twitter " << endl;
cout << "Twitter: " << this_thread::get_id() << endl;
}
int main()
{
thread A(run1);
thread B(run2);
A.join();
B.join();
return 0;
}
输出必须是:
Facebook: some_thread_id
推特:some_thread_id
【问题讨论】:
-
将一个线程的引用传递给需要等待的线程?
-
在线程 B 中等待 A 完成。
-
你能分享一个相同的代码sn-p吗?
-
您已经有适当的
join呼叫。只需将其移入run2,然后弄清楚如何传递对线程的引用。至少尝试。 -
你也可以在
A.join()之后才启动线程B。
标签: c++ multithreading parallel-processing