Programm haben Funktion, die keinen Wert zurückgeben kann, um Zeit zu minimieren diese Funktion parallel Arbeiter aufrufen. Im folgenden Code haben die Ergebnisse dieser Funktion die "None" -Werte. Wie kann dies ausgeschlossen werden, wenn Werte von "ret" stammen?Python: Kein leeres Ergebnis von multiprocessing.Pool() zuordnen
#!/usr/bin/python
import sys,multiprocessing,time
maxNumber = sys.maxint+2
def numGen():
cnt=0
while cnt < maxNumber:
cnt +=1
yield cnt
def oddCheck(num):
global maxNumber
# time.sleep(1)
if not bool(num%1000000):
print "[%s%%] %s" % (int((num/maxNumber)*100),num)
if num%2:
return num
pool = multiprocessing.Pool()
if sys.maxint < maxNumber:
print "We have problem on %s"%sys.maxint
# quit()
ret = pool.imap(oddCheck, numGen())
pool.close()
pool.join()
for x in ret:
print x