2
案例如下:我有一个主要的过程,让我们假设与pid = 1。主进程创建具有相同pid和不同线程标识的子线程。我想在不阻塞主线程的情况下加入子线程,所以我从主进程创建了一个新线程,并尝试在那里加入子线程而没有成功。我想知道,是否有可能在一个新创建的线程中加入一个子线程,或者它必须是主进程?是否有可能在C++中的新创建的线程中加入子线程?
案例如下:我有一个主要的过程,让我们假设与pid = 1。主进程创建具有相同pid和不同线程标识的子线程。我想在不阻塞主线程的情况下加入子线程,所以我从主进程创建了一个新线程,并尝试在那里加入子线程而没有成功。我想知道,是否有可能在一个新创建的线程中加入一个子线程,或者它必须是主进程?是否有可能在C++中的新创建的线程中加入子线程?
至少在Linux上(使用pthreads)它应该是可能的。从文档引用:
All of the threads in a process are peers: any thread can join with any other thread in the process.
我想你也可以在Windows上也做同样的事情。
在Linux下测试它并且工作,我也必须在Windows上尝试它。 – KoKa 2014-09-26 15:00:17
有没有这样的事情作为“子线程”。线程没有父/子关系。 – 2014-09-25 09:37:58
好吧,除了'main'线程外,每个线程都是在另一个线程中创建的。这定义了一个有向非循环图,一棵树是精确的(因为一个线程不能由两个线程创建)。因此,创建定义了父/子关系。 – MSalters 2014-09-25 10:01:25
他们更像是克隆人而不是后代。 main()由OS加载器创建的线程运行。 – 2014-09-25 12:46:28