【发布时间】:2016-08-28 21:31:21
【问题描述】:
我有一个程序,我想在其中为多个参数并行运行其中一个函数。
程序格式如下:
import statements
def function1():
do something
def function2()
do something
def main():
function1()
我在网上找到了几个如何使用multiprocessing库的例子比如下面这个通用模板
import multiprocessing
def worker(num):
print 'Worker:', num
return
if __name__ == '__main__':
for i in range(5):
p = multiprocessing.Process(target=worker, args=(i,))
p.start()
据我了解,worker() 是旨在并行执行的功能。但我不确定在哪里或如何使用
(if __name__ == '__main__':) 屏蔽代码。
到目前为止,该块在我的main() 中,当我运行程序时,我没有多次执行工作函数,而是我的 main 被多次执行?
那么在哪里放置 (if __name__ == '__main__':) 块的合适位置
【问题讨论】:
-
将并行化逻辑(对
multiprocessing的调用)放入main函数中。然后,在if __name__ == '__main__'内调用main -
您需要显示您正在运行的实际代码。由于您显示 的代码中没有任何内容调用您的
main()函数,因此我们无法猜测它为什么曾经 被调用。但是,如果您遵循您第二次发布的模板,您的代码将起作用。
标签: python multithreading function multiprocessing main