जब तक आप सख्ती से अनुक्रमिक प्रोग्राम लिखते हैं (ए, फिर बी, फिर सी; समाप्त हो गया!) आपके पास समवर्ती समस्याएं नहीं हैं, और एक भाषा की समवर्ती तंत्र अप्रासंगिक रहती है ।
जब आप "प्रोग्रामिंग अभ्यास" कार्यक्रमों से वास्तविक दुनिया की सामग्री में स्नातक हो जाते हैं, तो जल्द ही आपको उन समस्याओं का सामना करना पड़ता है जिनके समाधान बहु-थ्रेडिंग (या आपके द्वारा उपलब्ध समेकन का स्वाद) है।
केस: एक जीयूआई के साथ कार्यक्रम। मान लें कि आप वर्तनी जांच के साथ एक संपादक लिख रहे हैं। आप चाहते हैं कि वर्तनी परीक्षक चुपचाप पृष्ठभूमि में अपनी चीज कर रहा हो, फिर भी आप चाहते हैं कि जीयूआई उपयोगकर्ता इनपुट को आसानी से स्वीकार करे। तो आप उन दो गतिविधियों को अलग धागे के रूप में चलाते हैं।
केस: मैंने हाल ही में एक कार्यक्रम (काम के लिए) लिखा है जो दो लॉग फ़ाइलों से आंकड़े एकत्र करता है और उन्हें डेटाबेस में लिखता है। प्रत्येक फ़ाइल को संसाधित करने में लगभग 3 मिनट लगते हैं। मैंने उन प्रक्रियाओं को दो धागे में स्थानांतरित किया जो कि तरफ से चलते हैं, कुल प्रसंस्करण समय को 6 मिनट से थोड़ा अधिक 3 तक काटते हैं।
केस: वैज्ञानिक/इंजीनियरिंग सिमुलेशन सॉफ्टवेयर। आपके परीक्षण विषय (स्टार न्यूक्लियस, परमाणु विस्फोट, कीट आबादी का भौगोलिक फैलाव ...) का प्रतिनिधित्व करने वाले 3 आयामी ग्रिड में प्रत्येक बिंदु पर कुछ प्रभाव (गर्मी प्रवाह, कहें) की गणना करके हल की गई बहुत सारी समस्याएं हैं। असल में वही गणना प्रत्येक बिंदु पर और कई बिंदुओं पर की जाती है, इसलिए यह समानांतर में किया जाने का अर्थ होता है।
उन सभी मामलों में और कई अन्य, जब भी दो कंप्यूटिंग प्रक्रियाएं उसी स्मृति (= चर, यदि आप चाहें) तक पहुंचते हैं तो लगभग एक ही समय में उनके लिए एक दूसरे के साथ हस्तक्षेप करने और एक-दूसरे के काम को गड़बड़ करने की संभावना होती है। "समवर्ती प्रोग्रामिंग" से संबंधित कंप्यूटर साइंस की विशाल शाखा इस तरह की समस्या को हल करने के तरीकों से संबंधित है।
इस विषय की एक उपयोगी उपयोगी प्रारंभिक चर्चा in Wikipedia मिल सकती है।
स्रोत
2009-09-26 09:34:23
'कोई' कौन है? क्या आप एक उदाहरण दे सकते हैं? मुझे नहीं लगता कि कोई भी 'मेरे साथ मेरी वस्तुओं को साझा कर रहा है। शायद मुझे बिस्तर के नीचे जांच करनी चाहिए। –
* कोई * कोड का एक और टुकड़ा है, दूसरे थ्रेड में, उस ऑब्जेक्ट को एक्सेस करना। –
कभी-कभी कभी-कभी तेज़ी से तेज़ होता है - जैसे अधिकांश अनुकूलन जो मापने के बिना किए जाते हैं। तो कभी-कभी यह एक अच्छी बात है, और कभी-कभी उन ताले बेहतर होते। यही कारण है कि हम सॉफ्टवेयर ** इंजीनियरों ** कहा जाता है। – Eloff