请看下面的代码:
from multiprocessing import Process
def f(name):
print 'hello', name
if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
您将看到该函数调用,start
并且join
已在此处调用。事实上,它们总是multiprocessing
在 python文档中的模块示例中被调用。
现在之所以这么start
称呼的原因是相当明显的,因为它启动了这个过程。但是,join
与完全结束该过程不同,如文档中所述:
阻塞调用线程,直到调用其 join() 方法的进程终止或直到发生可选超时。
所以,据我了解,join()
是用来终止进程的。那么为什么terminate()
文档的示例中没有使用该函数TerminateProcess()
呢?
join
因此,这给我们带来了主要问题,和之间有什么区别terminate
?理想情况下,什么是join
目的,什么是terminate
目的?因为根据示例,他们似乎都能够做同样的事情(纠正我,如果我弄错了)。
到目前为止,我发现,这可能是因为terminate
windows 和 linux 不同,因为 windows 具有不同的终止功能。选择的进一步原因也将不胜感激。