अतुल्यकालिक और समानांतर प्रोग्रामिंग के बीच अंतर को कैसे स्पष्ट किया जाए?


139

कई प्लेटफार्मों जवाबदेही में सुधार के लिए साधन के रूप में अतुल्यकालिक और समानता को बढ़ावा देते हैं। मैं अंतर को आम तौर पर समझता हूं, लेकिन अक्सर मुझे अपने स्वयं के दिमाग में, साथ ही दूसरों के लिए स्पष्ट करना मुश्किल लगता है।

मैं एक कामचलाऊ प्रोग्रामर हूं और अक्सर एसिंक्स और कॉलबैक का उपयोग करता हूं। समानतावाद विदेशी लगता है।

लेकिन मुझे ऐसा लगता है कि वे आसानी से पहचाने जाते हैं, खासकर भाषा डिजाइन स्तर पर। वे किस तरह से संबंधित (या नहीं), और उन कार्यक्रमों के वर्गों को स्पष्ट विवरण पसंद करेंगे जहां प्रत्येक को सबसे अच्छा लागू किया जाता है।


मैंने अतुल्यकालिक और समानांतर प्रोग्रामिंग के बीच संबंध के बारे में एक ब्लॉग पोस्ट लिखा है - anat-async.blogspot.com/2018/08/…
अलेक्सई कागोरोडोव


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

जवाबों:


87

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

उदाहरण के लिए एक 3D एनीमेशन के फ्रेम प्रदान करें। एनीमेशन रेंडर करने के लिए एक लंबा समय लगता है इसलिए यदि आप लॉन्च करना चाहते थे तो अपने एनीमेशन एडिटिंग सॉफ़्टवेयर के भीतर से यह सुनिश्चित करें कि आप इसे अतुल्यकालिक रूप से चला रहे थे इसलिए यह आपके UI को लॉक नहीं करता था और आप अन्य काम करना जारी रख सकते थे। अब, उस एनीमेशन के प्रत्येक फ्रेम को एक व्यक्तिगत कार्य के रूप में भी माना जा सकता है। यदि हमारे पास कई CPU / Cores या कई मशीनें उपलब्ध हैं, तो हम समग्र कार्यभार को गति देने के लिए समानांतर में कई फ्रेम प्रस्तुत कर सकते हैं ।


मुझे देखने दो अगर मुझे यह मिलता है। विभिन्न फ़्रेमों को प्रस्तुत करने के समानांतर कार्यों को कई सीपीयू / कोर में फैलाया जाना चाहिए। जिसका कार्य पूरा होने के समय से कोई लेना-देना नहीं है, या वह कार्य कुछ और ब्लॉक करता है या नहीं। इसका मतलब है कि सीपीयू का एक गुच्छा इसे एक साथ करेगा और परिणाम को उपलब्ध कराएगा जैसे कि यह एक सुपर फास्ट सीपीयू पर चलता है। सही?

1
"एनीमेशन को रेंडर करने के लिए एक लंबा समय लगता है इसलिए यदि आप लॉन्च करना चाहते थे तो अपने एनीमेशन एडिटिंग सॉफ्टवेयर में से रेंडर करना सुनिश्चित करें (...)"। क्या?

3D एनीमेशन भाग के लिए: सबसे पहले, आप CPU पर फ्रेम बनाने के साथ 3D-ग्राफ़िक्स प्रोग्राम चलाएंगे - कोई भी समझदार व्यक्ति तुरंत GPU का उपयोग करने का सुझाव देगा। दूसरे, यदि हम ऐसा करते हैं (अत्यधिक हतोत्साहित) तो हम यह मापने के लिए एक टाइमर का उपयोग करेंगे कि हम कितने फ्रेम प्रस्तुत कर सकते हैं, अन्यथा हम अधूरा रेंडर कॉल टास्क के ढेर का निर्माण कर सकते हैं। लेकिन आपका बिंदु पूरी तरह से अधिकांश 2D-रेंडरिंग अनुप्रयोगों के साथ मान्य है जो प्रति-उपयोगकर्ता इनपुट ईवेंट आधार पर प्रदान कर रहे हैं।
ワ き ん

1
अतुल्यकालिक और गैर-अवरोधन अलग - अलग प्रतिमान हैं।
लोर्ने का मार्किस

73

मेरा मानना ​​है कि मुख्य अंतर संगामिति और समानता के बीच है

Async और Callbacks आम तौर पर संगामिति व्यक्त करने का एक तरीका (उपकरण या तंत्र) हैं, जो कि संस्थाओं का एक सेट है जो संभवतः एक दूसरे से बात कर रहे हैं और संसाधनों को साझा कर रहे हैं। Async या कॉलबैक संचार के मामले में निहित है, जबकि संसाधनों का साझाकरण वैकल्पिक है (RMI पर विचार करें जहां परिणाम दूरस्थ कंप्यूटर में गणना किए जाते हैं)। जैसा कि सही ढंग से उल्लेख किया गया है यह आमतौर पर जवाबदेही को ध्यान में रखकर किया जाता है; लंबे समय तक विलंबता घटनाओं की प्रतीक्षा न करें ।

समानांतर प्रोग्रामिंग में आमतौर पर मुख्य उद्देश्य के रूप में थ्रूपुट होता है, जबकि विलंबता, यानी किसी एक तत्व के लिए पूरा होने का समय, समतुल्य अनुक्रम कार्यक्रम से भी बदतर हो सकता है।

समवर्ती और समानता के बीच के अंतर को बेहतर ढंग से समझने के लिए मैं डेनियल वर्काका की संगणना के लिए प्रोबेबिलिस्टिक मॉडल से उद्धृत करने जा रहा हूं, जो कि संगामिति के सिद्धांत का एक अच्छा सेट है:

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

अंत में , समानांतर प्रोग्रामिंग कुछ हद तक संगामिति का एक विशेष मामला है जहां विभिन्न संस्थाएं उच्च प्रदर्शन और थ्रूपुट (आम तौर पर) प्राप्त करने के लिए सहयोग करती हैं।

Async और Callbacks केवल एक तंत्र है जो प्रोग्रामर को समसामयिकता व्यक्त करने की अनुमति देता है। इस बात पर विचार करें कि मास्टर / वर्कर या मैप / कम जैसे जाने-माने समानांतर प्रोग्रामिंग डिज़ाइन पैटर्न ऐसे फ्रेमवर्क द्वारा कार्यान्वित किए जाते हैं जो अधिक जटिल केंद्रीकृत इंटरैक्शन को लागू करने के लिए इस तरह के निचले स्तर के तंत्र (async) का उपयोग करते हैं।


37

यह लेख इसे बहुत अच्छी तरह से समझाता है: http://urda.cc/blog/2010/10/04/asynchronous-versus-parallelproprogramming

यह अतुल्यकालिक प्रोग्रामिंग के बारे में है:

अतुल्यकालिक कॉल का उपयोग किसी एप्लिकेशन के भीतर "ब्लॉकिंग" को रोकने के लिए किया जाता है। [ऐसा] कॉल पहले से मौजूद थ्रेड (जैसे कि I / O थ्रेड) में स्पिन-ऑफ होगा और जब यह कर सकता है तब अपना कार्य करेगा।

समानांतर प्रोग्रामिंग के बारे में यह:

समानांतर प्रोग्रामिंग में आप अभी भी काम या कार्यों को तोड़ते हैं, लेकिन प्रमुख अंतर यह है कि आप काम के प्रत्येक भाग के लिए नए थ्रेड को स्पिन करते हैं

और सारांश में यह:

अतुल्यकालिक कॉल का उपयोग करेगा प्रणाली द्वारा पहले से उपयोग में धागे और समानांतर प्रोग्रामिंग की आवश्यकता है काम, spinup, और टियरडाउन धागे की जरूरत को तोड़ने के लिए डेवलपर


3
यह लेख> यहाँ सभी उत्तर (पाठ्यक्रम के इस एक को छोड़कर!)
FellyTone84

1
लिंक के लिए धन्यवाद। इसलिए ... सामान्य तौर पर , यूआईएन से सर्वर पर संचार करते समय (या क्लाइंट से वेब सेवा के लिए) एसिंक्स कॉल का उपयोग करें। सर्वर या वेब सेवा समाप्ति पर समानांतर थ्रेडिंग का उपयोग करें, साथ ही साथ आपकी व्यावसायिक परत में भी।
गोकू_डा_मास्टर

18

मेरी बुनियादी समझ है:

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

समानांतर प्रोग्रामिंग संबंधित है, लेकिन एक बड़े कार्य को छोटे चंक्स में तोड़ने से संबंधित है जो एक ही समय में गणना की जा सकती है। छोटे चूजों के परिणामों को फिर समग्र परिणाम बनाने के लिए जोड़ा जा सकता है। उदाहरण: किरण-अनुरेखण जहां व्यक्तिगत पिक्सेल का रंग अनिवार्य रूप से स्वतंत्र है।

यह शायद उससे कहीं अधिक जटिल है, लेकिन मुझे लगता है कि यह मूल अंतर है।


यह अच्छी तरह से रखा गया है फिर भी यह काफी गलत है। एसिंक्रोनसिटी की तरह, समानांतरता भी नियंत्रण प्रवाह को क्रियाओं को पूरा किए बिना जारी रखने की अनुमति देती है। मुख्य अंतर समानांतरवाद हार्डवेयर पर निर्भर करता है।
सेरकन

13

मुझे इन शब्दों में अंतर के बारे में सोचना है:

एसिंक्रोनस: चले जाओ और इस कार्य को करो, जब तुम समाप्त हो जाओ और वापस आओ और मुझे बताओ और परिणाम लाओ। मैं इस समय में अन्य चीजों के साथ मिल रहा हूँ।

समानांतर: मैं चाहता हूं कि आप यह कार्य करें। अगर यह आसान हो जाता है, तो कुछ लोगों की मदद करें। हालांकि यह जरूरी है, इसलिए मैं यहां इंतजार करूंगा जब तक कि आप परिणामों के साथ वापस नहीं आते। जब तक आप वापस नहीं आते मैं कुछ और नहीं कर सकता।

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


13

async : इसे अपने आप से कहीं और करें और पूरा होने पर मुझे सूचित करें (कॉलबैक)। तब तक मैं अपनी बात जारी रख सकता हूं।

यहां छवि विवरण दर्ज करें

समानांतर : भाड़े के रूप में कई लोगों को (धागे) आप चाहते हैं के रूप में है और उन्हें काम विभाजित पूरा करने के लिए जल्दी और मुझे पता है (कॉलबैक) जब आप पूरा। तब तक मैं अपना अन्य सामान करना जारी रख सकता हूं।

यहां छवि विवरण दर्ज करें

मुख्य अंतर समानतावाद है जो ज्यादातर हार्डवेयर पर निर्भर करता है।


11

यह निष्पादन के आदेश का सवाल है।

यदि A, B के साथ अतुल्यकालिक है, तो मैं पहले से अनुमान नहीं लगा सकता कि A के सबपार्ट्स B के सबपार्ट्स के संबंध में क्या होगा।

यदि A, B के साथ समानांतर है, तो A में चीजें बी में चीजों के समान हो रही हैं। हालांकि, निष्पादन के एक आदेश को अभी भी परिभाषित किया जा सकता है।

शायद मुश्किल यह है कि एसिंक्रोनस शब्द समान है।

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

नौकरानियों की मेरी टीम समानांतर में काम कर रही है जब उनमें से प्रत्येक एक अलग खिड़की धो रहा है।

मेरी रेस कार सपोर्ट टीम अतुल्यकालिक रूप से समानांतर है कि प्रत्येक टीम एक अलग टायर पर काम करती है और उन्हें अपना काम करते समय एक दूसरे के साथ संवाद करने या साझा संसाधनों का प्रबंधन करने की आवश्यकता नहीं है।

मेरी फ़ुटबॉल (उर्फ फ़ुटबॉल) टीम समानांतर काम करती है क्योंकि प्रत्येक खिलाड़ी स्वतंत्र रूप से मैदान के बारे में जानकारी हासिल करता है और उस पर आगे बढ़ता है, लेकिन वे पूरी तरह से अतुल्यकालिक नहीं होते हैं क्योंकि उन्हें दूसरों के संचार का जवाब देना चाहिए और उन्हें जवाब देना चाहिए।

मेरा मार्चिंग बैंड भी समानांतर है क्योंकि प्रत्येक खिलाड़ी संगीत पढ़ता है और अपने इंस्ट्रूमेंट को नियंत्रित करता है, लेकिन वे अत्यधिक समकालिक होते हैं: वे एक दूसरे के साथ खेलते और मार्च करते हैं।

एक कैमर्ड गैटलिंग बंदूक को समानांतर माना जा सकता है, लेकिन सब कुछ 100% तुल्यकालिक है, इसलिए यह ऐसा है जैसे एक प्रक्रिया आगे बढ़ रही है।


9

अतुल्यकालिक क्यों?

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

समानांतर प्रोग्रामिंग क्यों?

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


5

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

समानांतर प्रोग्रामिंग आइए कहते हैं कि आपको पाठ फ़ाइल से 100 पंक्तियाँ पढ़ने, कहने और एक पंक्ति पढ़ने में 1 सेकंड लगता है। इसलिए, आपको पाठ फ़ाइल को पढ़ने के लिए 100 सेकंड की आवश्यकता होगी। अब आप चिंतित हैं कि क्लाइंट को ऑपरेशन खत्म होने के लिए 100 सेकंड तक इंतजार करना होगा। इसलिए आप 9 और क्लोन बनाते हैं और उनमें से प्रत्येक को टेक्स्ट फाइल से 10 लाइन पढ़ते हैं। अब 100 लाइनों को पढ़ने में केवल 10 सेकंड का समय लगता है। इसलिए आपके पास बेहतर प्रदर्शन है।

योग करने के लिए, अतुल्यकालिक कोडिंग जवाबदेही प्राप्त करने के लिए की जाती है और प्रदर्शन के लिए समानांतर प्रोग्रामिंग की जाती है।


4

अतुल्यकालिक: पृष्ठभूमि में एक विधि या कार्य चलाना, बिना अवरोध के। अलग धागे पर आवश्यक रूप से नहीं चल सकता है। संदर्भ स्विचिंग / समय निर्धारण का उपयोग करता है।

समानांतर कार्य: प्रत्येक कार्य परावलम्बी रूप से चलता है। संदर्भ स्विचिंग / समय निर्धारण का उपयोग नहीं करता है।


4

मैं यहां दो अवधारणाओं के साथ काफी सहज था, लेकिन उनके साथ मेरे बारे में कुछ स्पष्ट नहीं था।

कुछ उत्तरों के माध्यम से पढ़ने के बाद, मुझे लगता है कि मेरे पास अंतर का वर्णन करने के लिए एक सही और उपयोगी रूपक है।

यदि आप कोड की अपनी अलग-अलग पंक्तियों के बारे में सोचते हैं, लेकिन कार्ड खेलने का आदेश देते हैं (मुझे रोकें अगर मैं समझा रहा हूं कि पुराने स्कूल के पंच कार्ड कैसे काम करते हैं), तो प्रत्येक अलग प्रक्रिया के लिए, आपके पास कार्डों का एक अनूठा स्टैक होगा (नहीं कॉपी और पेस्ट!) और सामान्य रूप से रन कोड के सामान्य रूप से और असिंक्रोनसली के बीच अंतर पर निर्भर करता है कि आप परवाह करते हैं या नहीं।

जब आप कोड चलाते हैं, तो आप प्रोसेसर को पास करने के लिए ओएस को एकल संचालन का एक सेट सौंपते हैं (जो आपके कंपाइलर या दुभाषिया ने आपके "उच्च" स्तर कोड को तोड़ दिया)। एक प्रोसेसर के साथ, कोड की केवल एक पंक्ति को किसी भी एक समय में निष्पादित किया जा सकता है। इसलिए, एक ही समय में कई प्रक्रियाओं को चलाने के भ्रम को पूरा करने के लिए, OS एक ऐसी तकनीक का उपयोग करता है जिसमें वह प्रोसेसर को एक बार में दिए गए प्रोसेस से कुछ ही लाइनों को भेजता है, सभी प्रक्रियाओं के बीच स्विच करता है कि यह कैसे देखता है। फिट। परिणाम एक ही समय में लगता है कि अंत उपयोगकर्ता के लिए प्रगति दिखा रहा है कई प्रक्रियाओं है।

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

हालांकि, अगर आप देखभाल करते हैं (जैसे, कई प्रक्रियाएं हैं - या कार्ड के ढेर - जो एक दूसरे पर निर्भर करते हैं), तो ओएस का फेरबदल आपके परिणामों को खराब कर देगा।

एसिंक्रोनस कोड लिखने के लिए निष्पादन के क्रम के बीच निर्भरता को संभालने की आवश्यकता होती है, भले ही उस ऑर्डर का अंत हो। यही कारण है कि "कॉल-बैक" जैसे निर्माण का उपयोग किया जाता है। वे प्रोसेसर से कहते हैं, "करने के लिए अगली बात दूसरे स्टैक को बताएं कि हमने क्या किया"। इस तरह के उपकरणों का उपयोग करके, आपको आश्वासन दिया जा सकता है कि ओएस को अपने किसी भी निर्देश को चलाने की अनुमति देने से पहले अन्य स्टैक को अधिसूचित किया जाता है। ("If_back == false: send (no_operation)" - यह सुनिश्चित नहीं है कि क्या यह वास्तव में इसे लागू किया गया है, लेकिन तार्किक रूप से, मुझे लगता है कि यह सुसंगत है।)

समानांतर प्रक्रियाओं के लिए, अंतर यह है कि आपके पास दो ढेर हैं जो उन्हें संसाधित करने के लिए एक दूसरे और दो श्रमिकों की परवाह नहीं करते हैं। दिन के अंत में, आपको परिणामों को दो स्टैक से संयोजित करने की आवश्यकता हो सकती है, जो तब सिंक्रोनसिटी की बात होगी लेकिन, निष्पादन के लिए, आप फिर से परवाह नहीं करते हैं।

यकीन नहीं होता कि यह मदद करता है लेकिन, मुझे हमेशा कई स्पष्टीकरण मददगार लगते हैं। इसके अलावा, ध्यान दें कि अतुल्यकालिक निष्पादन एक व्यक्तिगत कंप्यूटर और इसके प्रोसेसर के लिए विवश नहीं है। आम तौर पर बोलना, यह समय के साथ व्यवहार करता है, या (और भी अधिक सामान्य रूप से बोलने वाला) घटनाओं का एक क्रम। इसलिए यदि आप नेटवर्क नोड X और उसके युग्मित स्टैक A से आश्रित स्टैक A को Y को भेजते हैं, तो सही एसिंक्रोनस कोड स्थिति का हिसाब करने में सक्षम होना चाहिए जैसे कि यह आपके लैपटॉप पर स्थानीय रूप से चल रहा था।


2

आम तौर पर, केवल दो तरीके होते हैं जिनसे आप हर बार एक से अधिक काम कर सकते हैं। एक अतुल्यकालिक है , दूसरा समानांतर है

उच्च स्तर से, लोकप्रिय सर्वर NGINX और प्रसिद्ध पायथन लाइब्रेरी टॉर्नेडो की तरह, वे दोनों पूरी तरह से अतुल्यकालिक प्रतिमान का उपयोग करते हैं जो सिंगल थ्रेड सर्वर एक साथ हजारों क्लाइंट्स (कुछ IOloop और कॉलबैक ) की सेवा कर सकता है । ECF (अपवाद नियंत्रण अनुसरण) का उपयोग करना जो अतुल्यकालिक प्रोग्रामिंग प्रतिमान को लागू कर सकता है। इसलिए अतुल्यकालिक कभी-कभी वास्तव में एक साथ काम नहीं करता है, लेकिन कुछ io बाउंड काम, अतुल्यकालिक वास्तव में प्रदर्शन को बढ़ावा दे सकता है।

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


-1

उपरोक्त सभी उत्तरों का सारांश

  1. समानांतर कंप्यूटिंग:

▪ विवादास्पद मुद्दे को हल करता है। एक बड़े कार्य को छोटे चंक्स में तोड़ने से चिंतित है

/ मशीन संबंधी (मल्टी मशीन / कोर / सीपीयू / प्रोसेसर की जरूरत) है, उदाहरण के लिए: मास्टर दास, नक्शा कम करना।

समानांतर संगणना में आमतौर पर एक केंद्रीय नियंत्रण शामिल होता है जो कई प्रोसेसर के बीच काम को वितरित करता है

  1. अतुल्यकालिक:

▪ विलंबता समस्या को हल करता है अर्थात, इससे पहले कि आप कुछ और कर सकें, एक महंगे ऑपरेशन के लिए 'प्रतीक्षा के आसपास' की समस्या

▪ धागा संबंधित (बहु धागा आवश्यक)

थ्रेडिंग (थ्रेड, रननेबल, एक्जिक्यूटर का उपयोग करके) जावा में अतुल्यकालिक संचालन करने का एक मौलिक तरीका है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.