在python中,for循环是执行串行计算,换句话说,for循环中的每个阶段一定要在上一个阶段完成之后才能被执行。当循环的代数特别多时,这样会非常耗费时间。
map( ) 这个函数能够将for循环的串行计算改变成并行计算。
import time
def func(x):
x = (x**2)**2
return x
lists = list(range(100000))
start = time.time()
a=[]
for num in lists:
a.append(func(num))
end = time.time()
print('Serial computing time:\t',end - start)
start = time.time()
b = map(func,lists)
end = time.time()
print('Parallel Computing time:\t',end - start)
print(a == list(b))
【结果】
Serial computing time: 0.11100649833679199
Parallel Computing time: 0.0
True
延伸阅读:python并行计算
多线程并行计算map