Estoy escribiendo algunos códigos de multiprocesamiento (Python 2.6.4, WinXP) que generan procesos para ejecutar tareas en segundo plano. Al jugar con algunos ejemplos triviales, me encuentro con un problema donde mi código genera continuamente nuevos procesos, aunque solo digo que genere un número fijo.Multiprocesamiento al iniciar demasiadas instancias de Python VM
El programa en sí funciona bien, pero si miro en Windows TaskManager, sigo viendo nuevos procesos 'python.exe'. Simplemente siguen generando más y más a medida que el programa se ejecuta (eventualmente muriendo de hambre a mi máquina).
Por ejemplo,
yo esperaría que el código de abajo para poner en marcha los procesos 2 python.exe. El primero es el programa en sí, y el segundo es el proceso secundario que engendra. ¿Alguna idea de lo que estoy haciendo mal?
import time
import multiprocessing
class Agent(multiprocessing.Process):
def __init__(self, i):
multiprocessing.Process.__init__(self)
self.i = i
def run(self):
while True:
print 'hello from %i' % self.i
time.sleep(1)
agent = Agent(1)
agent.start()
eso fue todo !! wow ... comportamiento extraño de hecho. –
no es raro una vez que comprenda la implementación, que es exactamente lo que Peter señala. – jnoller
@jnoller, no es obvio a menos que mires con cuidado, pero Corey hizo su comentario antes de editar mi respuesta para agregar la aclaración. –