Dişler ve çatallar aslında her ikisi de Unix / Linux sistemlerinde bulunan (ve her ikisi de C / C ++ 'da kullanılabilen) iki farklı kavramdır.
Bir fork () fikri, (temelde) üst işlemle aynı yürütme koduna sahip olan ve çatal çizgisinde yürütmeye başlayan ayrı bir işlemin oluşturulmasıdır. Exec işlevli çatalları kullanmanın amacı, exec işlevlerinin sona erdiğinde çağrılan işlemi kapatmasıdır. Bu nedenle, genellikle çatallanır, her işlemin PID'sini alırsınız (çocuğun her zaman 0'dır) ve ebeveyn, çocuk exec işlevini yürütmeyi bitirene kadar bekletir.
İplikler paralellik için kullanılır (ebeveynin çocuğu genellikle çatallı bir programda beklediğini hatırlayın). C / C ++ 'da pthread (bir Google araması yapın) gibi bir iş parçacığı, ana sürece paralel olarak çalışır ve global değişkenleri ve global işlevleri orijinal programla paylaşabilir. Java iş parçacıkları benzer şekilde davrandığından, bir çatal işleminden çok bu iş parçacıkları gibi hareket ettiklerini düşünürdüm.
Temel olarak, çatallama ve diş çekme arasında bir fark vardır. (Farklı görünseler de) belirgin şekilde farklı şeyler yaparlar. Bu kavramları anlamak zor olabilir, ancak bunları anlamak için dürüst bir arzunuz varsa (kapsamlı) araştırma yoluyla öğrenebilirsiniz.
DÜZENLEME # 1
Lütfen çatalların ve dişlerin nasıl çağrılabileceği ve kullanılabileceğine ilişkin bu örneklere bakın. Lütfen exec işlevlerinin davranışını ve bunların ana program üzerindeki etkilerini not edin.
http://www.jdembrun.com:4352/computerScience/forkVSthread.zip