2011-12-24 20 views
15

multiprocessing.Event और multiprocessing.managers.SyncManager.Event के बीच क्या अंतर है। मैं प्रत्येक का उपयोग कब करूं? दो अलग-अलग वस्तुएं क्यों मौजूद हैं? अन्य इसी तरह के multiprocessing में मौजूदा सीधे और भी Manager में वस्तुओं के लिएपायथन: मल्टीप्रोसेसिंग इवेंट

एक ही सवाल (Lock, आदि)

उत्तर

11

दुर्भाग्य से, केवल दिया जवाब बहुत सही नहीं है और दूसरों को नहीं दिया गया था।

मैंने इसे स्वयं देखा, और पाया कि multiprocessing.Event प्रक्रियाओं के बीच सिंक करने के लिए उपयोग किया जा सकता है, यह पूरी तरह से ठीक है।

Event और multiprocessing.Manager से अन्य वस्तुओं प्रक्रियाओं के बीच चीजें हैं जो हुड के नीचे सॉकेट के माध्यम से विभिन्न मशीनों पर चलता है सिंक्रनाइज़ करने के लिए सक्षम होने के लिए मौजूद हैं। उन्होंने यह भी इस्तेमाल किया जा सकता multiprocessing.synchronize से सिंक वस्तुओं बस का उपयोग करने से इस बात के लिए एक मशीन पर सिंक्रनाइज़ है, लेकिन कम कुशल (जैसे Event और Lock और अन्य)

+1

आप उसी मशीन पर उपयोगकर्ता प्रबंधक कर सकते हैं, यह विचार प्रॉक्सी ऑब्जेक्ट्स प्रदान करना है जो प्रबंधक के माध्यम से प्रकाशित वास्तविक साझा संसाधनों के साथ इंटरैक्ट कर सकता है। एक तरह से यह एक प्रकार का "आरपीसी-लाइट" – edomaur

+0

है क्या आप कृपया बता सकते हैं कि आपको वह जानकारी कहां मिली है? – utapyngo

+0

@utapyngo: खंड में "16.6.1.4। प्रक्रियाओं के बीच राज्य साझा करना", 2.7 का दस्तावेज़, विशेष रूप से अंतिम भाग पढ़ें। और कुछ googling और पढ़ने ट्यूटोरियल भी – zaharpopov

1

multiprocessing.Manager अनिवार्य रूप से एक विशेष प्रक्रिया है कि बहु की समन्वयन पुरातन का उदाहरण बना जाएगा अपने स्वयं के पता स्थान में मांग पर, और आपको आरपीसी प्रॉक्सी के माध्यम से उन तक पहुंचने दें। प्राइमेटिव्स वही व्यवहार करते हैं, और उनके पास रिमोट होस्ट्स (रिमोट केस में टीसीपी का उपयोग करके) से सुलभ होने की अतिरिक्त लचीलापन है।

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

  • कोई संबंधित समस्या नहीं^_^