में कोरआउट के साथ समांतर प्रोग्रामिंग समवर्ती प्रोग्रामिंग को कम करने के लिए कोरआउट्स एक महान प्रतिमान है। और अधिकांश समय, समवर्ती कार्य आसानी से समानांतर होते हैं। Go भाषा में, समांतर कार्यों को करने के लिए goroutines का उपयोग करना आसान है। क्या Python में एक ही चीज़ करने का कोई तरीका है, उदा। प्रक्रियाओं को बनाने और उन्हें सिंक्रनाइज़ करने के लिए कोरआउट का उपयोग करने के लिए?पाइथन
Q
पाइथन
5
A
उत्तर
3
हां, पायथन को पुस्तकालयों में और जनरेटर के माध्यम से कोरआउट के लिए समर्थन है: उदाहरण के लिए Greenlet लाइब्रेरी देखें। इसके अलावा, एक व्युत्पन्न नाम Stackless Python है जिसमें कई समवर्ती प्रोग्रामिंग सुविधाओं जैसे कि माइक्रोथ्रेड और चैनलों के लिए अंतर्निहित समर्थन है।
ध्यान दें कि डिफ़ॉल्ट CPython में, ग्लोबल इंटरप्रेटर लॉक केवल एक थ्रेड को एक बार चलाने की अनुमति देगा, जो एक समस्या हो सकती है।
2
यदि आप मानक पायथन दुभाषिया का उपयोग करना चाहते हैं, तो हरितलेट लाइब्रेरी जाने का तरीका है।
जीआईएल के लिए, यह कोरआउट के लिए कोई समस्या नहीं होनी चाहिए। आप एक कर्नेल थ्रेड के भीतर चल रहे कई हल्के वजन वाले उपयोगकर्ता-स्थान 'धागे' के रूप में ग्रीनलेट कोरआउट मॉडल पर विचार कर सकते हैं। तो जीआईएल और ओएस बिंदु से, यह अभी भी एकल धागा है।