2009-11-06 58 views
0

我有一個應用程序有幾個不同的線程。然後我用fork()分叉,但發現子進程必須重新創建這些線程。克隆過程中可以複製線程嗎?謝謝!線程在分叉時未被複制?

+0

你使用什麼語言?這可能與答案有關。 – 2009-11-06 02:38:47

+0

我猜C,但它可能有助於知道哪個操作系統,並且這些pthreads或什麼? – 2009-11-06 02:39:37

+0

哦,我也猜測Linux是操作系統。 :) – 2009-11-06 04:05:23

回答

1

如果您使用的是Unix,那麼在C語言中,fork()應該創建所有新線程,如果在線程創建後分叉的話,這會導致重複使用資源,因此可能是問題。

http://gauss.ececs.uc.edu/Users/Franco/ForksThreads/forks.html

這篇文章在多線程應用程序中使用叉問題的會談,他們引用網頁,該網頁下面: http://www.viraj.org/b2evolution/blogs/index.php/2007/02/10/threads_and_fork_a_bad_idea

http://www.lsgalilei.org/glibc-doc/Threads-and-Fork.html

這個問題應該有你需要的答案,順便說一句: fork and existing threads?

+0

非常感謝!我想我有你的答案! – xis 2009-11-06 17:23:22

+0

如果您有實際的答案,請將其作爲問題的更新發布,以便如果其他人遇到相同類型的問題,可以幫助他們。 – 2009-11-06 19:08:55