最近在写一个代码,感觉要run很久,在群里问,有人建议采用multiprocessing。开始看官方文档。然而有一个程序却测试跑不出来。
# -*- coding: utf-8 -*- """ Created on Sun Jul 30 19:42:12 2017 multiprocessing_test """ import multiprocessing as mp def f(name): print('hello', name) if __name__ == '__main__': p = mp.Process(target=f, args=('bob',)) p.start() p.join() # 在anaconda的spyder中,一定要有这一句才ok。 # 但是在fluent python中,不需要这一句 p.run() #output为 hello bob #下面的程序运行正常 def f2(x): return x**x if __name__ == '__main__': with mp.Pool(5) as p: print(p.map(f2, [1, 2, 3])) #output为[1, 4, 9]