Python进程池Pool
最近做了一个demo,用到了进程池,要提升速率,但是打包成exe之后程序直接卡死了。
网上搜索之后发现在Win系统下要加freeze_support()这么一段代码
if __name__ == '__main__':
while True:
try:
freeze_support()
number = get_number_page()
# number = 200
groups = [x for x in range(1,int(number))]
pool = Pool(10)
pool.map(main,groups)
官方文档给出了如下解释:
大致翻译一下
添加对何时冻结使用多处理的程序以生成Windows可执行文件的支持。 (已经使用py2exe,PyInstaller和cx_Freeze进行了测试。)
需要在主模块的if __name__ =='__ main__'行之后直接调用此函数。 例如:
from multiprocessing import Process, freeze_support
def f():
print('h