我试图理解python 3.5中的多处理池 这是我迄今为止在理解方面所做的事情
def f(file):
with gzip.open(file, 'r') as fin:
for line in fin:
pass
return line
if __name__ == '__main__':
import time
fl_list = ["six.txt.gz","six.txt1.gz"]
start = time.time()
with Pool(4) as p:
p.map(f, fl_list)
end = time.time()
print("multiprocess",end - start)
start = time.time()
for fl in fl_list:
f(fl)
end = time.time()
print("Serial Process:",end - start)
结果:
所有文件都相同
for 2 files:
multiprocess: 9.002790212631226
Serial Process: 14.341188907623291
for 4 files:
multiprocess: 16.881436586380005
Serial Process: 29.185585498809814
for 6 files:
multiprocess: 23.094680309295654
Serial Process: 45.07802891731262
我错过了什么吗?我的意思是多处理时间不应该保持不变?