कड़ाई से बोलते हुए, समांतर, असीमित और समवर्ती के बीच भेद यहां किया जाना चाहिए।
समांतर अर्थ यह है कि एक "कार्य" कई छोटे उप-"कार्यों" के बीच विभाजित होता है जिसे एक ही समय में चलाया जा सकता है। इसके लिए एक बहु-कोर सीपीयू या बहु-सीपीयू कंप्यूटर की आवश्यकता होती है, जहां प्रत्येक कार्य में समर्पित कोर या सीपीयू होता है। या एकाधिक कंप्यूटर। PLINQ (डेटा समांतरता) और टीपीएल (कार्य समांतरता) इस श्रेणी में आते हैं।
असिंक्रोनस का अर्थ है कि कार्य एक-दूसरे को अवरुद्ध किए बिना चलते हैं। एफ # की एसिंक अभिव्यक्ति, आरएक्स, स्टार्ट/एंड पैटर्न एसिंक प्रोग्रामिंग के लिए सभी एपीआई हैं।
Concurrency एक अवधारणा समानांतरता और एसिंक्रोनि से अधिक व्यापक है। Concurrency का मतलब है कि एक ही समय में कई "कार्य" चलते हैं, एक दूसरे के साथ बातचीत करते हैं। लेकिन इन "कार्यों" को अलग-अलग भौतिक कंप्यूटिंग इकाइयों पर चलाने की ज़रूरत नहीं है, जैसा समांतरता में है। उदाहरण के लिए, मल्टीटास्किंग ऑपरेटिंग सिस्टम टाइम स्लाइस का उपयोग करते हुए सिंगल-कोर सिंगल-सीपीयू कंप्यूटर पर भी कई प्रक्रियाओं को निष्पादित कर सकते हैं। उदाहरण के लिए अभिनेता मॉडल और संदेश पास करने के साथ Concurrency प्राप्त किया जा सकता है (उदाहरण के लिए एफ # मेलबॉक्स, एरलांग प्रक्रियाएं (नेट में रीट्लैंग))
थ्रेड ऊपर की अवधारणाओं की तुलना में अपेक्षाकृत कम-स्तरीय अवधारणा हैं। थ्रेड एक प्रक्रिया के भीतर चल रहे कार्य होते हैं, जो ऑपरेटिंग सिस्टम के शेड्यूलर द्वारा समवर्ती रूप से चलते हैं और सीधे प्रबंधित होते हैं। आप समानांतर कार्यान्वित कर सकते हैं जब ऑपरेटिंग सिस्टम प्रत्येक धागे को प्रत्येक थ्रेड पर संदेश कतार, रूटिंग इत्यादि को लागू करके एक अलग कोर, या एक अभिनेता मॉडल को मानचित्र करता है।
स्रोत
2010-05-21 18:39:18
कच्चे डेटा के लिए कुछ उपयोगी लिंक: http://msdn.microsoft.com/en-us/concurrency/ee851578.aspx http://channel9.msdn.com/shows/The + ज्ञान + चैंबर/मल्टी कोर और समानांतर प्रोग्रामिंग-व्यवहार/ http://blogs.msdn.com/pfxteam/rss.xml – Brian
खैर, PLINQ/'Parallel' निश्चित रूप से सबसे आसान उपयोग करने के लिए, लेकिन नहीं कर रहे हैं सभी स्थितियों में लागू –