该pool.apply_async
调用可以通过一个callback
函数.foo
函数完成时将调用回调函数,并将传递返回的值foo
.请注意,返回值必须是可选择的,因为进程之间的通信是使用Queue完成的.
import multiprocessing as mp def foo(x): return x * x if __name__ == '__main__': result = [] pool = mp.Pool() for i in range(100): pool.apply_async(foo, args=(i, ), callback=result.append) pool.close() pool.join() print(result) # [0, 1, 4, 9, 16, ... 9409, 9604, 9801]