2016-11-23 23 views
8

multiprocessing.pool.ApplyResult için korkutucu derecede az miktarda katı API belgeleri var (read: ZERO). Çok işlemcili açıklama dokümanı, hakkındaApplyResult s'yi anlatır, ancak bunları tanımlamaz.Çok yönlülük.pool.ApplyResult belgelerinin nerede bulunur?

Python çoklu işlem kılavuzunun daha iyi bir şekilde görünmesine rağmen, aynı durum multiprocessing.pool.Pool için geçerli gibi görünmektedir.

bile ApplyResult help() sonuç değersiz şunlardır:

| get(self, timeout=None) 
| 
| ready(self) 
| 
| successful(self) 
| 
| wait(self, timeout=None) 
  • Get() ve Ready() alıyorum. Bunlar iyi.

  • Ben wait() Bir get() çağrı sizi bekler varsayarsınız bir "havuz", ele olduğu göz önüne alındığında, bunun için var kesinlikle hiçbir fikrim yok. Bu "sonucu bekle, ama şimdi almayın" Yoksa OS tarzı bir bekleyiş mi? Ve eğer öyleyse, bile anlamına ne gelir?

  • successful()'un neyle ilgili olduğundan emin değilim.

cevap

7

belgelerinde bir aksaklık halinde olduğunu Kişisel hakkı: Sınıf aslında AsyncResult değil, ApplyResult olarak belgelenmiştir.

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

adı

noktada değiştirilmiş olabilir ve belgeler sürekli güncellenen değildi, ama her şey, sadece yanlış adıyla belgelenir belgelenmiştir: İki aynı sınıf için farklı isimlerdir. (Birisi dokümanlar AsyncResult söz dikkat çekti hangi a closed bug yoktur ancak takma ad olarak AsyncResult eklendi böylece sınıf aslında ApplyResult denir.) Bu benim kodundan gördükleri şeydir

+1

Doküman şu adreste bulunabilir: https://docs.python.org/2/library/multiprocessing.html#multiprocessing.pool.AsyncResult – Caramiriel

0

:

  • ready(): "iş parçacığı" tarafından çalıştırılan görev sonucu
  • get(timeout=None) sonucunu vermeye hazır olduğunda true değerini döndürür: zamanaşımı birimleri için bir sonuç bekler (kayan nokta saniye cinsinden) ve sonucu başarılı bir şekilde tamamlar. Zaman aşımına bir TimeoutError yükseltir, başarılı olmayan bir tamamlama ile ilişkili istisna artırır.
  • wait(timeout=None)
  • : threading.Condition.wait([timeout]) çocuk "iplik" nin hasati İMA ETMİYOR uyarınca, işçi "parçacığı" tarafından belirlenen bir koşul değişkeni bekler.
  • success(): ready ise, get() sonucunun get() sonucu olması durumunda True değerini döndürür. Aksi takdirde, False döndürür (yani sonuç bir istisna olacaktır). Eğer iddialar etkinleştirilirse, hazır değilse söyleyecektir. Bu işlev atılan istisnaları önlemek için kullanılabilir.
İlgili konular