多处理在python中绑定任务

时间:2017-04-21 05:47:01

标签: python

我试图理解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

我错过了什么吗?我的意思是多处理时间不应该保持不变?

0 个答案:

没有答案