python多进程打印进度条

本文介绍了一种使用Python的multiprocessing模块进行并行处理的方法,并结合tqdm库实现任务进度的可视化显示。通过一个具体示例,展示了如何创建进程池、分配任务并实时更新进度条。
import time
from tqdm import tqdm
import multiprocessing as mp


def pickle_process(_class, *args):
    return _class.proc_func(*args)


class OP():
    def __init__(self):
        self.length = 64

    def proc_func(self):
        time.sleep(0.1)

    def flow(self):
    	# ------------- 配置好进度条 ------------- 
        pbar = tqdm(total=self.length)
        pbar.set_description(' Flow ')
        update = lambda *args: pbar.update()
        # --------------------------------------
        pool = mp.Pool(16)
        for _ in range(self.length):
            pool.apply_async(pickle_process, args=(self, ), callback=update)	# 通过callback来更新进度条
        pool.close()
        pool.join()


if __name__ == '__main__':

    start_time = time.time()
    op = OP()
    op.flow()
    print(time.time() - start_time)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值