मैं एक अच्छी परिभाषा खोजने की कोशिश कर रहा हूं, और एक समझ प्राप्त करता हूं, कि वास्तव में एक धागा क्या है।
ऐसा लगता है कि मुझे कुछ स्पष्ट याद आ रहा है, लेकिन हर बार जब मैंने पढ़ा कि एक धागा क्या है, तो यह लगभग एक परिपत्र परिभाषा है, एक ला "एक धागा निष्पादन का एक धागा है" या "रनिंग कार्यों में विभाजित करने का एक तरीका"। उह उह। है ना?
ऐसा लगता है कि मैंने क्या पढ़ा है कि एक धागा वास्तव में कुछ ठोस नहीं है, जैसे कि एक प्रक्रिया है। यह वास्तव में सिर्फ एक अवधारणा है। जिस तरह से मैं इस काम के तरीके को समझता हूं, एक प्रोसेसर एक प्रोग्राम के लिए कुछ कमांड निष्पादित करता है (जिसे निष्पादन का एक धागा कहा गया है ), फिर जब इसे कुछ अन्य प्रोग्राम के लिए प्रसंस्करण पर स्विच करने की आवश्यकता होती है, तो यह स्थिति को संग्रहीत करता है यह कार्यक्रम वर्तमान में कहीं (थ्रेड लोकल स्टोरेज) के लिए निष्पादित हो रहा है और फिर अन्य प्रोग्राम के निर्देशों को निष्पादित करना शुरू करता है। और आगे और पीछे। ऐसा है, जो वास्तव में चल रहे प्रोग्राम के "निष्पादन के रास्तों में से एक" के लिए एक थ्रेड वास्तव में एक अवधारणा है।
एक प्रक्रिया के विपरीत, जो वास्तव में कुछ है - यह संसाधनों का एक समूह है, आदि।
एक परिभाषा के उदाहरण के रूप में, जिसने मुझे वास्तव में बहुत मदद नहीं की। । ।
से विकिपीडिया :
"कंप्यूटर विज्ञान में एक धागा निष्पादन के एक धागे के लिए छोटा है। थ्रेड्स एक प्रोग्राम को विभाजित करने के लिए एक तरीका है (जिसे" स्प्लिट "" कहा जाता है) दो या अधिक एक साथ (या छद्म-एक साथ) चल रहे कार्यों में। थ्रेड्स और प्रक्रियाएं एक से भिन्न होती हैं। ऑपरेटिंग सिस्टम दूसरे के लिए, लेकिन सामान्य तौर पर, एक थ्रेड किसी प्रक्रिया के अंदर होता है और एक ही प्रक्रिया में अलग-अलग थ्रेड्स समान संसाधनों को साझा करते हैं जबकि एक ही मल्टीटास्किंग ऑपरेटिंग सिस्टम में विभिन्न प्रक्रियाएं नहीं होती हैं। "
तो क्या मैं सही हूं? गलत? वास्तव में एक धागा क्या है?
संपादित करें: जाहिरा तौर पर एक थ्रेड को अपना कॉल स्टैक भी दिया जाता है, ताकि कुछ हद तक ठोस चीज हो ।