El multiproceso de Python no se inicia
Aquí está mi código para una tarea simple de multiprocesamiento en python
from multiprocessing import Process
def myfunc(num):
tmp = num * num
print 'squared O/P will be ', tmp
return(tmp)
a = [ i**3 for i in range(5)] ## just defining a list
task = [Process(target = myfunc, args = (i,)) for i in a] ## creating processes
for each in task : each.start() # starting processes <------ problem line
for each in task : each.join() # waiting all to finish up
Cuando ejecuto este código, se cuelga en cierto punto, así que para identificarlo lo corrí línea por línea en el shell de Python y encontré que cuando llamo 'each.start ()' El shell muestra un cuadro de diálogo como:
" The program is still running , do you want to kill it? '
y selecciono 'si' la cáscara se cierra.
Cuando sustituyo Process con 'threading.Thread', se ejecuta el mismo código pero con esta salida sin sentido:
Squared Squared Squared Squared Squared 0 1491625
36496481
¿Hay alguna ayuda en este sentido? gracias de antemano
Para ejecutar mis códigos de python, uso Idlex IDE y lo inicio desde el terminal.
Tengo el procesador Intel Xeon con 4 núcleos / 8 hilos y 8 GB de RAM