2016-11-23 2 views
8

multiprocessing.pool.ApplyResultの場合、恐ろしく厳密なAPIドキュメント(ZERO)があります。マルチプロセッシングの説明文は、ApplyResultについて述べていますが、定義していません。multiprocessing.pool.ApplyResultのドキュメントはどこですか?

同じことがmultiprocessing.pool.Poolにも当てはまりますが、Pythonのマルチプロセッシングガイドではそれをよりよくカバーしているようです。

はさえApplyResulthelp()結果は微々たるです:

| get(self, timeout=None) 
| 
| ready(self) 
| 
| successful(self) 
| 
| wait(self, timeout=None) 
  • Get()Ready()私を得ます。それらは大丈夫です。

  • 私はwait()あなたは1が get()コールであなたを待ってしまう引き受ける「プール」、と 扱っていることを考えると、何のためにあるのか全く見当がつかない。これは「結果を待つのですが、今は取得しない」OSスタイルの待ちですか?もしそうなら、それではの意味は

  • successful()はすべて同じであることは同じです。

答えて

7

ドキュメントでグリッチであることをあなたの右:クラスが実際にAsyncResult、ないApplyResultとして文書化されています。 2つが同じクラスの別の名前です:

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

名前がいくつかの点で変更された可能性がありますし、ドキュメントを一貫して更新されなかったが、すべてが文書化されて、それだけで間違った名前で文書化されています。 (誰かがドキュメントはAsyncResultに言及していることを指摘しているa closed bugありますが、それらは別名としてAsyncResultを追加しましたので、クラスは実際に、ApplyResultと呼ばれています。)これは私がコードから見たものである

+1

文書は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()readyの場合は、の結果が値の場合はTrueを返します。それ以外の場合は、Falseを返します(結果は例外になります)。アサーションが有効な場合は、準備ができていない場合はアサートします。この関数は、スローされた例外を避けるために使用できます。
関連する問題