Estoy intentando ejecutar 2 procesos simultáneamente, pero solo se ejecuta el primero
def add(): while True: print (1) time.sleep(3) def sud(): while True: print(0) time.sleep(3) p1 = multiprocessing.Process(target=add) p1.run() p = multiprocessing.Process(target=sud) p.run()
A continuación funcionará con seguridad, pero intente ejecutarlo como un módulo. No intente en la consola ni en el portátil de Jupiter, ya que el portátil nunca cumplirá la condición “si nombre == ‘ principal ‘”. Guarde el código completo en un archivo, digamos process.py, y ejecútelo desde el símbolo del sistema. Editar – está funcionando bien. Justo ahora lo intenté …
import multiprocessing import time def add(): while True: print (1) time.sleep(3) def sud(): while True: print(0) time.sleep(3) if __name__ == '__main__': p1 = multiprocessing.Process(name='p1', target=add) p = multiprocessing.Process(name='p', target=sud) p1.start() p.start()
El método que está buscando es start
, no run
. start
inicia el proceso y las llamadas se run
para realizar el trabajo en el nuevo proceso; Si llama a run
, ejecute el trabajo en el proceso de llamada en lugar de un nuevo proceso.