我正在学习使用多进程池技术。我写了这个脚本来练手。
有人可以告诉我为什么使用普通的for循环比使用进程池要快吗?
附注:我的CPU有2个核心。
非常感谢。
有人可以告诉我为什么使用普通的for循环比使用进程池要快吗?
附注:我的CPU有2个核心。
非常感谢。
from multiprocessing import Pool
from functools import reduce
import time
def one(n):
a = n*n
return a
if __name__ == '__main__':
l = list(range(1000))
p = Pool()
t = time.time()
pol = p.map(one, l)
result = reduce(lambda x,y: x+y, pol)
print("Using Pool the result is: ", result, "Time: ", time.time() - t )
p.close()
p.join()
def two(n):
t = time.time()
p_result = []
for i in n:
a = i*i
p_result.append(a)
result = reduce(lambda x,y: x+y, p_result)
print("Not using Pool the result is: ", result, "Time: ", time.time() - t)
two(l)
使用进程池,结果为:332833500时间:0.14810872077941895
未使用进程池,结果为:332833500时间:0.0005018711090087891