2014-09-25 18 views
2

案例如下:我有一个主要的过程,让我们假设与pid = 1。主进程创建具有相同pid和不同线程标识的子线程。我想在不阻塞主线程的情况下加入子线程,所以我从主进程创建了一个新线程,并尝试在那里加入子线程而没有成功。我想知道,是否有可能在一个新创建的线程中加入一个子线程,或者它必须是主进程?是否有可能在C++中的新创建的线程中加入子线程?

+1

有没有这样的事情作为“子线程”。线程没有父/子关系。 – 2014-09-25 09:37:58

+0

好吧,除了'main'线程外,每个线程都是在另一个线程中创建的。这定义了一个有向非循环图,一棵树是精确的(因为一个线程不能由两个线程创建)。因此,创建定义了父/子关系。 – MSalters 2014-09-25 10:01:25

+0

他们更像是克隆人而不是后代。 main()由OS加载器创建的线程运行。 – 2014-09-25 12:46:28

回答

2

至少在Linux上(使用pthreads)它应该是可能的。从文档引用:

All of the threads in a process are peers: any thread can join with any other thread in the process. 

我想你也可以在Windows上也做同样的事情。

+1

在Linux下测试它并且工作,我也必须在Windows上尝试它。 – KoKa 2014-09-26 15:00:17

相关问题