2013-12-22 48 views
3

我玩弄pthreads,現在在我看來,當我打電話從先前與pthread_create催生了一個線程pthread_create,新pthread堆棧會分配到堆棧的父親線程。在主線程中,這不會成爲問題,因爲主線程的堆棧仍然可以增長,因爲MMU將在需要時分配和映射新內存,但pthread有固定的堆棧大小。所以當我從pthread創建一個pthread時,我必須確保父pthread的stacksize(和guardsize)足夠大以容納子pthread的堆棧(加上guardpages)。
這個假設是否正確?我一直無法找到關於此的任何文檔。遞歸併行線程產卵 - 堆棧位置

+2

_''now it seems to me'_你如何認同這樣的觀察?什麼會導致你這樣的假設? –

+0

你正在離開基地。 –

回答

3

使用pthread_create()創建的父線程可以使用pthread_create()創建另一個子線程。

如果孩子的堆棧會存在父母的堆棧中,那麼只要父母結束,孩子的堆棧就會失效,並且孩子無法繼續活動。

後者並非如此。

從這個人可以得出結論,孩子的堆棧確實是而不是住在父母的堆棧上。

+0

你是對的。經過一些更多的測試後,我可以得出結論,我的假設是不正確的。 thx的答案 – user2950911