Estoy explorando el módulo de multiproceso de Python y no entiendo por qué el siguiente código no imprime nada en absoluto. Sin el ciclo while, el programa imprime Worker_1 como se esperaba.Multiproceso de Python: sin salida con while-loop en la función de trabajador
import multiprocessing, time
def worker1():
print 'Worker_1'
while 1:
print 'Worker_1'
time.sleep(3)
return
if __name__ == '__main__':
jobs = []
p = multiprocessing.Process(target=worker1)
jobs.append(p)
p.start()
No soy un maestro en el módulo de multiprocesamiento, y no puedo probarlo ahora, pero intente agregar 'p.join()' después de su 'p.start()'. Si el programa principal sale después de que se inicia el subproceso, ¿continúa el subproceso? No lo creo, pero no sé. Tenga en cuenta que esto significa que tendrá que hacer algunos chanchullos para que el trabajador se detenga cuando lo desee. Alternativamente, mira el módulo de la horquilla tal vez. –