1. 基本用法
with concurrent.futures.ProcessPoolExecutor() as executor:
results = executor.map(function, list)
for result in results:
print(result)
通过map函数,将list中的每个元素,放到不同的进程中同时执行,返回结果存在于results中。
note:
1. 上面的用法必须写在main函数内
2. function 不可以是类中的方法
3. 如果要打包成EXE,必须在main函数开头加上一句, 否则不会多进程。
multiprocessing.freeze_support()
4. 程序执行到with 语句时,开始分配子进程,每个子进程都会从头开始执行,直到with语句, 执行函数。 所以函数中要使用的全局变量必须在最开始声明。