2011-05-19 22 views
14

Çok işlevli bir işlemi çoğaltmak için fork() işlevi kullanılabilir. Ve eğer öyleyse, tüm iş parçacıkları tam olarak aynı olacak ve eğer olmasın, neden olmasın. Çoğaltma çatalı ile yapamazsa, benim için yapabileceğimiz başka bir işlev var mı?Çok iş parçacıklı çatalı

+0

[Bu soru] 'u gördünüz mü (http://stackoverflow.com/questions/1235516/fork-in-multi-threaded-program)? Veya [bu] (http://stackoverflow.com/questions/1073954/fork-and-existing-threads)? Temel olarak, sadece fork çatal() dişi, çocuk işleminde hayatta kalır. Neyi başarmaya çalışıyorsun? – Zecc

+0

Aslında, yinelenen işlemin, aynı kodu çalıştırarak birincil işlemden çıktıları doğrulayacağı güvenilir yürütme için çoğaltılmış bir işlem oluşturmaya çalışıyordum. – MetallicPriest

cevap

13

Hayır, çocuğun yalnızca bir iş parçacığı olacaktır. Dişli bir işlemin yapılması önemsiz değildir. (İyi bir yıkım için bu makaleye bakın Threads and fork(): think twice before mixing them).

Bir işlemi ve tüm iş parçacıklarını klonlamanın herhangi bir yolunu bilmiyorum, bunun Linux üzerinde mümkün olduğunu sanmıyorum.

+2

+1, çok bilgilendirici blog yazısı. – DarkDust

-1

sayılı

bir çatal kendi iplik (ler), kopyalar dosya tanımlayıcı ve sanal bellek ile yeni bir süreç oluşturur.

Bir çocuk işlemi aynı belleği babasıyla paylaşmaz. Yani bu kesinlikle aynı değil.

İlgili konular