multiprocessing.pool.ApplyResult 的文档在哪里?

Where is documentation for multiprocessing.pool.ApplyResult?

multiprocessing.pool.ApplyResult 的 API 文档(阅读:ZERO)少得吓人。多处理解释文档谈论 关于 ApplyResults,但没有定义它们。

这似乎也适用于 multiprocessing.pool.Pool,尽管 Python 多处理指南似乎更好地涵盖了它。

即使 ApplyResult help() 结果也微不足道:

 |  get(self, timeout=None)
 |  
 |  ready(self)
 |  
 |  successful(self)
 |  
 |  wait(self, timeout=None)

你是对的,文档中有一个小故障:class 实际上被记录为 AsyncResult,而不是 ApplyResult。两者是同一个 class:

的不同名称
>>> multiprocessing.pool.ApplyResult is multiprocessing.pool.AsyncResult
True

名称可能在某些时候已更改,并且文档未持续更新,但所有内容均已记录,只是记录在错误的名称下。 (a closed bug 其中有人指出文档提到了 AsyncResult 但 class 实际上称为 ApplyResult,因此他们添加了 AsyncResult 作为别名。)

这是我从代码中看到的:

  • ready():如果 "thread" 的任务 运行 已准备好 return 结果
  • ,则 return 为真
  • get(timeout=None):等待超时单位(在 floating-point 秒内)的结果,并在成功完成后 returns 返回结果。在超时时引发 TimeoutError,在 non-successful 完成时引发相关异常。
  • wait(timeout=None):根据 threading.Condition.wait([timeout]) 等待工人设置的条件变量 "thread" 并不暗示 收获 child "thread".
  • successful():如果ready,returns True如果get()的结果是一个值。否则,returns False(即结果将是异常)。如果启用断言,则在结果未准备好时将引发 ValueError。