लिनक्स पर, सूत्र प्रक्रियाओं के संदर्भ में लागू किया जाता है। दूसरे शब्दों में, धागे वास्तव में केवल fork()
हैं, जो पूरी तरह से कॉपी-ऑन-राइट मेमोरी के बजाय अधिकतर साझा स्मृति के साथ हैं। इसका क्या अर्थ है, यह है कि जब आप थ्रेड (मुख्य या अन्य) में fork()
का उपयोग करते हैं, तो आप सभी थ्रेड के पूरे साझा मेमोरी स्पेस को कॉपी करते हैं, और थ्रेड के थ्रेड विशिष्ट स्टोरेज को fork()
से कॉल करते हैं।
अब यह सब अच्छा लगता है, लेकिन इसका मतलब यह नहीं है कि यह होगा या अच्छा काम करेगा। यदि आप क्लोन प्रक्रिया करना चाहते हैं, तो किसी भी अन्य धागे को शुरू करने से पहले एक कांटा करने का प्रयास करें, और फिर वर्तमान स्मृति मानों के साथ फोर्क प्रक्रिया को अद्यतित रखने के लिए केवल पढ़ने के लिए वर्चुअल मेमोरी का उपयोग करें।
तो हालांकि यह काम कर सकता है, मैं बस परीक्षण का सुझाव देता हूं, और पहले एक और तरीका खोजने की कोशिश करता हूं।
Segmentation fault
@JensGustedt मैं मूल रूप से हालांकि तो भी, लेकिन इस धागे और _fork() _ लिनक्स पर के बारे में एक व्यापक सवाल की तर्ज पर अधिक होना चाहिए: और का एक बहुत के लिए तैयार रहना। – Emanuele