【发布时间】:2019-06-12 20:22:43
【问题描述】:
我很难理解run() 和start() 之间的区别。根据文档,run() 方法调用传递给对象构造函数的可调用对象,而start() 方法启动该过程并且只能调用一次。
我尝试了以下示例:
def get_process_id(process_name):
print process_name, os.getpid()
p1 = multiprocessing.Process(target=get_process_id, args=('process_1',))
p2 = multiprocessing.Process(target=get_process_id, args=('process_2',))
p1.run()
p2.run()
p1.start()
p2.start()
结果如下:
process_1 35138
process_2 35138
process_1 35141
process_2 35142
当我使用run() 时,它表明p1 和p2 使用相同的过程。但是当我使用start() 时,他们给出了两个不同的。是不是因为调用run()与调用它的进程没有任何关系,只是调用函数(本例中为get_process_id)?
【问题讨论】:
标签: python multiprocessing python-multiprocessing