2016-11-23 6 views
8

Существует пугающая небольшая строгая документация по API (см.: ZERO) для multiprocessing.pool.ApplyResult. Многопроцессорное объяснение doc говорит оApplyResult s, но не определяет их.Где находится документация для multiprocessing.pool.ApplyResult?

То же самое относится к multiprocessing.pool.Pool, хотя руководство по многопроцессорной обработке Python, по-видимому, лучше покрывает его.

Даже 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

Doc можно найти по адресу: https://docs.python.org/2/library/multiprocessing.html#multiprocessing.pool.AsyncResult – Caramiriel

0

Это то, что я вижу в коде:

  • ready(): возвращает true, если задача, выполняемая «потоком», готова к возврату результата
  • get(timeout=None): ожидает результата для единиц измерения времени ожидания (с плавающей запятой) и возвращает результат при успешном завершении. При тайм-ауте возникает TimeoutError, при неудачном завершении возникает связанное исключение.
  • wait(timeout=None): ждет от переменной состояния, установленного рабочего «нити», согласно threading.Condition.wait([timeout])НЕ ОЗНАЧАЕТ пожинает ребенка «нить».
  • success(): if ready, возвращает True, если результатом будет get(). В противном случае возвращается False (т. Е. Результат будет исключением). Если утверждения разрешены, будет утверждать, если они не готовы. Эта функция может использоваться для исключения исключений.
Смежные вопросы