क्या यह केवल इसलिए है क्योंकि उन्हें रजिस्टरों के लिए केवल एक स्टैक और स्टोरेज की आवश्यकता होती है ताकि वे बनाने के लिए सस्ते हों?

क्या तथ्य यह है कि धागे सामान्य डेटा साझा कर सकते हैं, यानी उन्हें यहां इंटरप्रोसेस संचार एक कारक का उपयोग करने की आवश्यकता नहीं है? क्या इससे सुरक्षा की आवश्यकता कम होगी ?

या क्या थ्रेड्स मल्टीप्रोसेसरों का प्रक्रियाओं से बेहतर लाभ उठाते हैं?

2
user476033 14 फरवरी 2011, 14:55

4 जवाब

सबसे बढ़िया उत्तर

अगर हम भारी वजन वाले धागे (उदाहरण के लिए विंडोज थ्रेड) की बात करते हैं, तो एक प्रक्रिया में धागे होते हैं, और इसमें कम से कम एक धागा (मुख्य धागा) होता है, तो स्पष्ट रूप से यह भारी या कम से कम हल्का नहीं होता :-) (योग है हमेशा >= भाग)

कई "टेबल" हैं जो एक प्रक्रिया में होनी चाहिए (खुली फ़ाइल तालिका, वह तालिका जो दिखाती है कि मेमोरी कैसे मैप की जाती है (एलडीटी, स्थानीय डिस्क्रिप्टर टेबल) ...) यदि आप कोई प्रक्रिया बनाते हैं तो इन सभी तालिकाओं को प्रारंभ किया जाना है। यदि आप एक धागा बनाते हैं तो वे नहीं करते (क्योंकि धागा इसकी प्रक्रिया के लोगों का उपयोग करता है)। और फिर एक नई प्रक्रिया को सभी डीएलएल को फिर से लोड करना होगा, उन्हें रीमैपिंग के लिए जांचें ...

2
xanatos 22 अक्टूबर 2011, 19:40

कौन कहता है यह है? कुछ ऑपरेटिंग सिस्टम पर थोड़ा अंतर होता है। क्या आप विंडोज़ के बारे में सोच रहे हैं जहां प्रक्रियाओं की तुलना में धागे बहुत हल्के वजन वाले होते हैं?

मुझे संदेह है कि आप इस स्टैक ओवरफ्लो प्रश्न

4
Community 23 मई 2017, 13:27

विंडोज़ परिप्रेक्ष्य से, एक प्रक्रिया करने को बनाने में अधिक समय लेती है यदि यह कई डीएलएल लोड कर रही है और आधार पते में विरोध के कारण स्मृति में उन्हें चारों ओर ले जा रही है। फिर डेविड हेफर्नन के उत्तर के लिंक में सूचीबद्ध अन्य सभी कारणों को देखें।

1
Chris O 14 फरवरी 2011, 16:04

प्रक्रिया स्विच को सीएस/डीएस रजिस्टरों में परिवर्तन की आवश्यकता है। इन रजिस्टरों के मूल्य में परिवर्तन के लिए वैश्विक डिस्क्रिप्टर तालिका से एक नया डिस्क्रिप्टर लाने की आवश्यकता होती है जो वास्तव में सीपीयू समय के मामले में महंगी प्रक्रिया है।

0
Adnan 12 अक्टूबर 2015, 20:33