小编Ani*_*hag的帖子

多处理事件不起作用

我使用多处理模块在 Python 3 中编写了以下代码。它更多的是一个测试脚本,看看如何使用Event. 但是,它不起作用。

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)
Run Code Online (Sandbox Code Playgroud)

但是,当我运行这个时,我只得到输出:

starting
setting
Run Code Online (Sandbox Code Playgroud)

我想得到输出:

starting
setting
Done!
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,p1在进程调用 event.set() 后,进程没有继续执行其代码p2

有什么想法为什么会发生这种情况吗?

python events multiprocessing

5
推荐指数
1
解决办法
4347
查看次数

标签 统计

events ×1

multiprocessing ×1

python ×1