【发布时间】:2016-07-11 13:34:43
【问题描述】:
我想运行两个线程,一个用于我拥有的每个类。但我希望他们独立。例如,我有这样的事情:
class A
{
pthread_t threadA;
void runThreadA() { pthread_create(... arguments_here ...)};
}
class B
{
pthread_t threadB;
void runThreadB() { pthread_create(... arguments_here ...)};
}
目前我在内部为每个类创建并运行两个线程,但我的主要是这样的:
main()
{
A.runThreadA();
B.runThreadB();
pthread_join(threadA, NULL);
pthread_join(threadB, NULL);
return 0;
}
如何在内部也加入两个线程,导致两个线程并行运行?
希望我能理解.. 谢谢
【问题讨论】:
-
你不能把
pthread_join放在类析构函数中吗? -
@NathanOliver 加入析构函数不是一个好主意。 Maria 你可以使用线程池来实现所需的功能。
-
“内部加入”是什么意思?
-
@immibis 与“在内部加入”我的意思是我不想在 main() 内部调用 'pthread_join()' 函数。我希望它在类成员函数中自动发生。
-
@maria 阅读有关 RAII 的更多信息。析构函数不能轻易报告错误,也不能优雅地失败。析构函数没有返回值,抛出异常会导致应用程序的 UB/终止。 stackoverflow.com/questions/130117/…
标签: c++ multithreading class pthreads posix