2009-08-21 16 views

उत्तर

17

Multithreading एक व्यापक प्रोग्रामिंग और निष्पादन मॉडल के रूप में एक ही प्रक्रिया के संदर्भ में एकाधिक धागे मौजूद होने की अनुमति देता है। ये थ्रेड प्रक्रिया संसाधनों को साझा करते हैं लेकिन स्वतंत्र रूप से निष्पादित करने में सक्षम हैं। थ्रेडेड प्रोग्रामिंग मॉडल समवर्ती निष्पादन के उपयोगी अमूर्तता के साथ डेवलपर्स प्रदान करता है। हालांकि, शायद प्रौद्योगिकी का सबसे दिलचस्प अनुप्रयोग तब होता है जब इसे एक एकल प्रक्रिया पर लागू किया जाता है ताकि मल्टीप्रोसेसर सिस्टम पर समानांतर निष्पादन को सक्षम किया जा सके।

इसका मतलब है कि एक भी process कई अलग अलग "कार्यों" हो सकता है executingconcurrently, आवेदन बेहतर उपलब्ध हार्डवेयर (कई कोर/प्रोसेसर) का उपयोग करने की इजाजत दी। थ्रेड उनके बीच संवाद कर सकते हैं (उनके पास shared memory है), लेकिन hard problem में others के साथ साझा ऑब्जेक्ट/मेमोरी को accesing करते समय है।

थ्रेडिंग लंबे समय तक संचालन करते समय, सभी एप्लिकेशन लूप को पकड़ने के उपयोग के बिना किसी एप्लिकेशन को उत्तरदायी रहने की अनुमति देता है।

उदाहरण के लिए, एक गैर थ्रेडेड copy प्रोग्राम आपको कॉपी पूरा होने तक कुछ भी करने की अनुमति नहीं देगा।

थ्रेडिंग जटिल, लांघी, स्वतंत्र समस्याओं के साथ मदद करता है, लेकिन a lot more complexity के साथ लाता है, जो इसे अनुभवी डेवलपर्स के लिए भी कठिन बनाता है।

1

यह एक ऐसा एप्लिकेशन है जो अपने लक्ष्य को पूरा करने के लिए आंतरिक रूप से एक से अधिक thread का उपयोग करता है।

बहुत सारे उदाहरण हैं, क्योंकि उपयोगकर्ता के साथ बातचीत करने की आवश्यकता वाले अधिकांश एप्लिकेशन में यूआई थ्रेड और काम करने वाले थ्रेड का एक सेट होता है। यह UI को उत्तरदायी रहने की अनुमति देने के लिए किया जाता है जबकि एप्लिकेशन कुछ कार्य करने में व्यस्त रहता है।

+4

प्रक्रिया के वर्कलोड को कम करने के लिए थ्रेड है! = थ्रेड – ripper234

1

एक बहु थ्रेडेड एप्लिकेशन चीजों को गति देने के लिए एक साथ कई कार्यों को चलाने का लाभ उठाता है। मल्टीथ्रेडिंग कई सीपीयू मशीनों का लाभ भी ले सकती है।

2

यह एक ऐसा एप्लिकेशन है जो एक साथ कई चीजें कर सकता है। उदाहरण के लिए, यदि आप वर्ड में एक दस्तावेज़ लिख रहे हैं, तो आपके कीबोर्ड पर प्रतिक्रिया देने वाला धागा है, वहां एक थ्रेड है जो आपकी वर्तनी की जांच कर रहा है, वहां कोई भी है जो आपके व्याकरण की जांच कर रहा है, एक और थ्रेड आपके दस्तावेज़ का बैकअप सहेजने के मामले में हो सकता है कार्यक्रम दुर्घटनाग्रस्त

0

यह एक ऐसा प्रोग्राम है जो एक से अधिक thread का उपयोग करता है। विभिन्न धागे साझा स्मृति संरचनाओं तक पहुंच सकते हैं (आमतौर पर उचित synchronization mechanisms का उपयोग करके, उदाहरण के लिए locks)। एक उदाहरण एक प्रोग्राम होगा जो एक साथ कुछ फ़ाइलों को डाउनलोड करता है, डाउनलोड प्रक्रिया को तेज़ करने के लिए प्रत्येक थ्रेड का उपयोग करके प्रत्येक डाउनलोड (इसे प्राप्त करने के लिए और अधिक परिष्कृत तरीके हैं, यह केवल एक उदाहरण है)।

बहु-थ्रेडिंग अक्सर सीपीयू-बाध्य कार्यों पर उपयोग की जाती है, जो आधुनिक कंप्यूटर में सभी कोरों का उपयोग करने से लाभान्वित होती है (उदाहरण के लिए एकाधिक प्रोसेसर का उपयोग करके साइफर को तोड़ने का प्रयास करना)।

धागे और प्रक्रिया के बीच का अंतर यह है कि विभिन्न प्रक्रियाएं आमतौर पर स्मृति और डेटा संरचनाओं को सीधे साझा नहीं कर सकती हैं, हालांकि प्रक्रियाओं के बीच जानकारी साझा करने के लिए विभिन्न तंत्र मौजूद हैं (वे आमतौर पर धागे के बीच जानकारी साझा करने से अधिक महंगा होते हैं)।

0

क्या वह

थ्रेड्स और प्रक्रियाओं के कार्यान्वयन एक से दूसरे ऑपरेटिंग सिस्टम से अलग है ने कहा, लेकिन ज्यादातर मामलों में, एक धागा एक प्रक्रिया के अंदर निहित है। एकाधिक थ्रेड एक ही प्रक्रिया में मौजूद हो सकते हैं और मेमोरी जैसे संसाधन साझा कर सकते हैं, जबकि विभिन्न प्रक्रियाएं इन संसाधनों को साझा नहीं करती हैं।

-1

धागे के लिए आपको प्रक्रिया को जानना है जो प्रोग्राम के उदाहरण के अलावा कुछ भी नहीं है, जब आप इसे चलाने के दौरान विंडोज़ में पेंट का उदाहरण लेते हैं, तो यह एक उदाहरण या पेंट प्रोग्राम की प्रक्रिया बनाता है। जब आप अलग-अलग विंडो पर मल्टीप्लिप छवि खोलते हैं तो आप उस प्रोग्राम की एक से अधिक प्रक्रिया बनाते हैं। इसी प्रकार थ्रेड प्रक्रिया की एक इकाई है जिसका मतलब है कि आप एक पेंट विंडो देखते हैं लेकिन पृष्ठभूमि में कई धागे उदा।, ब्रश, पेंसिल इत्यादि हैं। प्रोसेसर

संबंधित मुद्दे