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