Sto cercando di ottenere una comprensione di base prima di creare l'applicazione effettiva di cui ho bisogno. Recentemente mi sono trasferito dal 2,7 al 3,3.Il codice concurrent.futures di esempio non funziona con "BrokenProcessPool"
Una copia-incolla diretta di this code from the python docs non riesce, così come un esempio leggermente più semplice da here.
Questo è il mio codice, derivato dal secondo esempio:
import concurrent.futures
nums = [1,2,3,4,5,6,7,8,9,10]
def f(x):
return x * x
# Make sure the map and function are working
print([val for val in map(f, nums)])
# Test to make sure concurrent map is working
with concurrent.futures.ProcessPoolExecutor() as executor:
for item in executor.map(f, nums):
print(item)
E questo è l'output:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
Traceback (most recent call last):
File "<string>", line 420, in run_nodebug
File "<module1>", line 13, in <module>
File "C:\Python33\lib\concurrent\futures\_base.py", line 546, in result_iterator
yield future.result()
File "C:\Python33\lib\concurrent\futures\_base.py", line 399, in result
return self.__get_result()
File "C:\Python33\lib\concurrent\futures\_base.py", line 351, in __get_result
raise self._exception
concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.
Come posso ottenere questo codice a funzionare come previsto? Speravo che gli esempi funzionassero appena fuori dagli schemi.