如何等待所有进程结束

时间:2015-08-03 18:28:37

标签: python multithreading subprocess python-multiprocessing

我并行运行了两个Process个实例:

from multiprocessing import Process

def foobar():
  return x*x

def barfoo():
  return x+x

thread_fb = Process(target = foobar, args=(3,)))
thread_bf = Process(target = barfoo, args=(3,)))
thread_fb.start(); thread_bf.start()
thread_fb.wait(); thread_bf.wait()

它抛出了这个错误:

AttributeError: 'Process' object has no attribute 'wait'

如何等待所有multiprocessing.Process结束?

使用threading其他多处理/线程库时的等价物是什么?

2 个答案:

答案 0 :(得分:2)

使用Process.join,这实际上是用于“等待”的术语:

thread_fb.start()
thread_bf.start()
thread_fb.join()
thread_bf.join()

答案 1 :(得分:1)

您可以使用join方法等待它结束。

thread_fb.join()
thread_bf.join()

此外,线程和进程不一样,因此您可能需要考虑名称更改。