2016-11-23 11 views
8

भयभीत रूप से थोड़ा सख्त एपीआई दस्तावेज है (शून्य) multiprocessing.pool.ApplyResult के लिए। मल्टीप्रोसेसिंग स्पष्टीकरण दस्तावेज़ ApplyResult एस के बारे में बात करता है, लेकिन उन्हें परिभाषित नहीं करता है।multiprocessing.pool.ApplyResult के लिए प्रलेखन कहां है?

ऐसा लगता है कि multiprocessing.pool.Pool पर लागू होता है, हालांकि पाइथन मल्टीप्रोसेसिंग मार्गदर्शिका इसे बेहतर कवर करने लगती है।

भी ApplyResulthelp() परिणाम तुच्छ हैं:

| get(self, timeout=None) 
| 
| ready(self) 
| 
| successful(self) 
| 
| wait(self, timeout=None) 
  • Get() और Ready() मैं मिलता है। वे ठीक हैं।

  • मैं बिल्कुल पता नहीं क्या wait(), के लिए है को देखते हुए आप हैं कि एक "पूल" है, जो एक get() कॉल में आप के लिए इंतजार कर रहा है होगा ग्रहण करेंगे के साथ काम किया है। क्या यह "परिणाम के लिए प्रतीक्षा करें, लेकिन अब इसे प्राप्त न करें" या यह एक ओएस-स्टाइल प्रतीक्षा है? और यदि हां, तो क्या होगा मतलब?

  • मुझे समान रूप से अनिश्चितता है कि successful() क्या है।

उत्तर

7

आपका सही दस्तावेज में एक गड़बड़ में है कि वहाँ: वर्ग वास्तव में AsyncResult, नहीं ApplyResult के रूप में दर्ज है।

>>> multiprocessing.pool.ApplyResult is multiprocessing.pool.AsyncResult 
True 

नाम कुछ बिंदु पर बदल गया हो सकता है और डॉक्स लगातार अद्यतन नहीं किया गया, लेकिन सब कुछ दर्ज है, यह सिर्फ गलत नाम के तहत दस्तावेज़ीकरण किया गया है: दो एक ही कक्षा के लिए अलग अलग नाम हैं। (वहाँ a closed bug जिसमें किसी ने बताया कि डॉक्स उल्लेख AsyncResult है, लेकिन वास्तव में वर्ग, ApplyResult कहा जाता है तो वे एक उपनाम के रूप AsyncResult गयी।)

+1

डॉक्टर को यहां मिलेगा: https://docs.python.org/2/library/multiprocessing.html#multiprocessing.pool.AsyncResult – Caramiriel

0

यह मैं क्या कोड से देख रहा है:

  • ready(): यदि "थ्रेड" द्वारा चलाया गया कार्य परिणाम लौटने के लिए तैयार है तो
  • get(timeout=None): टाइमआउट इकाइयों (फ़्लोटिंग-पॉइंट सेकेंड में) के परिणाम की प्रतीक्षा करता है और परिणाम को सफल समापन पर लौटाता है। समय-समय पर एक TimeoutError उठाता है, एक सफल सफल समापन पर संबंधित अपवाद उठाता है।
  • wait(timeout=None): के रूप में प्रति threading.Condition.wait([timeout])संकेत नहीं करता है बच्चे "सूत्र" के कटाई, एक शर्त चर कार्यकर्ता "सूत्र" द्वारा निर्धारित पर इंतजार कर रहा है।
  • success(): ready, पर get() का परिणाम एक मूल्य होगा। अन्यथा, False लौटाता है (यानी परिणाम एक अपवाद होगा)। यदि दावे सक्षम हैं, तो तैयार नहीं होगा अगर तैयार नहीं है। फेंकने वाले अपवादों से बचने के लिए इस फ़ंक्शन का उपयोग किया जा सकता है।
संबंधित मुद्दे