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?

questionAnswers(1)

yourAnswerToTheQuestion