【发布时间】:2018-10-09 19:11:58
【问题描述】:
如何退出名为 mymultiprocessing.Pool 的函数
这是我正在使用的代码示例,当我设置条件退出函数 worker 时,当我在终端中将其用作脚本时,它会停止并且不会退出。
def worker(n):
if n == 4:
exit("wrong number") # tried to use sys.exit(1) did not work
return n*2
def caller(mylist, n=1):
n_cores = n if n > 1 else multiprocessing.cpu_count()
print(n_cores)
pool = multiprocessing.Pool(processes=n_cores)
result = pool.map(worker, mylist)
pool.close()
pool.join()
return result
l = [2, 3, 60, 4]
myresult = caller(l, 4)
【问题讨论】:
-
exit究竟应该做什么? -
简单地退出脚本,错误值为 4 ex: exit("Can not run the script value = 4")
-
只是来自函数(或
return somevalue)的return,而不是调用exit()。您还应该缩进if __name__ == '__main__':中的最后几行 -
你不能从工作进程中退出主脚本。
-
没有一个适合你的答案吗?
标签: python multiprocessing pool