2016-11-23 16 views
8

Istnieje przerażająco mała, ścisła dokumentacja API (czytaj: ZERO) dla multiprocessing.pool.ApplyResult. Objaśnienie dotyczące procesu przetwarzania wieloprocesowego mówi o tym, ale nie definiuje ich.Gdzie jest dokumentacja dla multiprocessing.pool.ApplyResult?

To samo odnosi się do multiprocessing.pool.Pool, chociaż przewodnik wieloprocesorowy Pythona wydaje się go lepiej zakryć.

Nawet ApplyResulthelp() wyniki są marne:

| get(self, timeout=None) 
| 
| ready(self) 
| 
| successful(self) 
| 
| wait(self, timeout=None) 
  • Get() i Ready() otrzymuję. Te są w porządku.

  • mam absolutnie żadnego pojęcia, co jest dla wait(), biorąc pod uwagę, że jesteś czynienia z „puli”, które można by przyjąć, że czeka na Ciebie w połączeń get(). Czy to "poczekaj na wynik, ale nie rozumiem tego teraz", czy może jest to oczekiwanie w stylu OS? A jeśli tak, to co by oznaczało, że to jest ?

  • Nie jestem równie pewny, o co chodzi w tym successful().

Odpowiedz

7

swoje prawo, które istnieje w glitch w dokumentacji: klasa jest właściwie udokumentowane, a nie jako AsyncResult ApplyResult. Obie są różne nazwy dla tej samej klasy:

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

Nazwa może zostały zmienione w pewnym momencie i docs nie były konsekwentnie zaktualizowane, ale wszystko jest udokumentowane, to tylko udokumentowane pod złym imieniem. (Jest a closed bug w którym ktoś zwrócił uwagę, że docs wspomnieć AsyncResult ale klasa jest faktycznie nazywa ApplyResult, więc dodali AsyncResult jako alias.)

+1

Dokumenty można znaleźć pod adresem: https://docs.python.org/2/library/multiprocessing.html#multiprocessing.pool.AsyncResult – Caramiriel

0

To, co widzę z kodem:

  • ready(): zwraca prawdę, jeśli zadanie uruchamiane przez "wątek" jest gotowe do zwrócenia wyniku:
  • get(timeout=None): oczekuje na wynik dla jednostek czasu (w sekundach zmiennoprzecinkowych) i zwraca wynik po pomyślnym zakończeniu. Na timeout podnosi TimeoutError, na zakończenie zakończone niepowodzeniem podnosi powiązany wyjątek.
  • wait(timeout=None): czeka na zmiennej warunek określony przez pracownika „GW”, zgodnie threading.Condition.wait([timeout])NIE OZNACZA Reaping dziecka „nici”.
  • success(): jeśli ready, zwróci True, jeśli wynik get() będzie wartością. W przeciwnym razie zwraca False (tj. Wynik będzie wyjątkiem). Jeśli potwierdzenia są włączone, będą działać, jeśli nie będą gotowe. Ta funkcja może być używana w celu uniknięcia zgłaszanych wyjątków.
Powiązane problemy