0

我对多处理很陌生,一直试图找到这个问题的答案,但没有成功。

给定两个进程,如果我使用.join,第二个进程是与第一个进程并行开始,还是等到第一个进程完成?

如果是后者,我如何让这些流程协同工作?

import multiprocessing

def worker():
    x = 0
    for i in range(2000000):
        x+=1
    print x

def worker2():
    x = 0
    for i in range(10000000):
        x+=1
    print x


if __name__ == '__main__':
    q = multiprocessing.Process(target=worker2,)
    q.start()
    q.join()

    p = multiprocessing.Process(target=worker,)
    p.start()
    p.join()
4

1 回答 1

1

join()使主进程等待子进程终止;防止第二个进程启动。

放置join()在第二个进程开始之后以并行运行两个进程。

if __name__ == '__main__':
    q = multiprocessing.Process(target=worker2,)
    q.start()

    p = multiprocessing.Process(target=worker,)
    p.start()

    q.join()
    p.join()
于 2013-08-09T03:52:13.597 回答