Evento de multiprocessamento não está funcionando
Eu escrevi o seguinte código em Python 3 usando o módulo de multiprocessamento. É mais um script de teste para ver como usarEvent
. No entanto, não está funcionando.
import multiprocessing, time
from multiprocessing import Process, Event
event = Event()
def f(n):
if n == 1:
print("starting")
event.wait()
print("Done!")
if n == 2:
time.sleep(3)
event.set()
print("setting")
if __name__ == "__main__":
p1 = Process(target = f, args = (1,))
p2 = Process(target = f, args = (2,))
p1.start()
p2.start()
time.sleep(1000)
No entanto, quando eu executo isso, apenas recebo a saída:
starting
setting
Eu quero obter a saída:
starting
setting
Done!
Mas, por alguma razão, op1
O processo não está seguindo em frente com seu código após event.set () ter sido chamado pelop2
processo.
Alguma idéia de por que isso está acontecendo?