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数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值