Python多处理拒绝循环

2024-05-04 09:56:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近发现了Python的多处理,所以我在玩它的时候碰到了一堵墙。在

这是我正在使用的脚本:

import multiprocessing, time

def p_def():
        print "running p"
        time.sleep(5)

def v_def():
        print "running v"
        time.sleep(5)

p = multiprocessing.Process(target=p_def)
v = multiprocessing.Process(target=v_def)

while True:
        time.sleep(0.25)
        p.start()
        while p.is_alive() == True:
                time.sleep(0.5)
                print "waiting for it to finish"

当我运行代码时,一切都很好,它会启动p_def,但当它完成并希望再次运行它时,它遇到了一个障碍,并向我输出以下错误:

^{pr2}$

我觉得这有点奇怪。我的理解是它应该能够再次运行它,尽管,我在网上看到的是人们说它不能运行同一个东西两次。在

真相是什么?我怎么能让它跑两次?在


Tags: import脚本truetargettimeisdefsleep
1条回答
网友
1楼 · 发布于 2024-05-04 09:56:51

你需要重新创建对象p,一个进程只能启动一次。 (https://docs.python.org/2/library/multiprocessing.html#multiprocessing.Process.start

import multiprocessing, time

def p_def():
        print "running p"
        time.sleep(5)

def v_def():
        print "running v"
        time.sleep(5)

v = multiprocessing.Process(target=v_def)

while True:
        time.sleep(0.25)
        p = multiprocessing.Process(target=p_def)
        p.start()
        while p.is_alive() == True:
                time.sleep(0.5)
                print "waiting for it to finish"

相关问题 更多 >