python multiprocess.pool —— 大家好,我是池子

上一篇博客python多进程逐对比较文档相似度+均分比较次数里面开始用multiprocess,用得很原始,比较笨。把100次比较切成等分的4份,每份25次,因为每次比较的计算量是不同的,虽然切成均分的份数了,但是实际上往往3个进程跑完了,还有一个计算量大的要单独跑半天。然后研究了一下pool,于是池子来了。

少啰嗦,先看代码:

result = Manager().list()

p1 = Pool()
for i in range(len(files) - 1):
    for j in range(i + 1, len(files)):
        p1.apply_async(compare, args=(files[i], files[j], result))

p1.close()
p1.join()

for line in result:
    print(line)

创建进程池,循环每一次比较的两个文件,丢进进程池,处理完了自动再将下一次需要比较的两个文件丢进池子里,显然聪明和快多了。进程数作为Pool()的参数,不设定就是逻辑cpu数。

猜你喜欢

转载自blog.csdn.net/qq_35753140/article/details/80689459