Python多进程显示进度条的优雅方案

今日段子???? :

林深时见鹿????,

海蓝时见鲸????, 

夜深时见鬼????。

使用multiprocessing进程池的imap方法,可以将函数依次作用到可迭代对象上各个元素,并发送到多个进程中执行。配合tqdm库,我们可以通过进度条显示多进程代码的整体执行进度!

这是一段非常强大和人性化的代码组合!

一,单参数函数

如果我们要多次执行的函数只有一个参数,这个参数在多进程任务中依次取可迭代对象中各个值,可以参照如下代码范例。

from multiprocessing import Pool
from tqdm import tqdm 
import math
import numpy as np 

def func(x):
    return math.sin(x)+math.cos(x)
with Pool(processes = 20) as pool:
    result = list(tqdm(pool.imap(func, np.linspace(0,2*math.pi,1000)), total=1000))

二,多参数函数

对于多参数函数,如果我们只想对它的一个参数在多进程任务中依次取可迭代对象中各个值,其他参数固定,可以使用偏函数构造出单参数函数。注意,不可以使用lambda 函数代替偏函数,否则会报局部函数不可序列化的错误。

from multiprocessing import Pool
from tqdm import tqdm 
import numpy as np 
import math 
import time 
from functools import partial 

def func(x,y):
    time.sleep(0.1)
    return math.sin(x)+math.cos(y)
  
with Pool(processes = 20) as pool:
    result = list(tqdm(pool.imap(partial(func,y = math.pi), np.linspace(0,2*math.pi,1000)), total=1000))

以上。

万水千山总是情,点个在看行不行????? ????

在Linux系统中,可以使用ps命令来显示进程信息。ps命令是最基本同时也是非常强大的进程查看命令,可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程是否僵死、进程是否占用过多的资源等等。可以使用以下命令来显示进程信息:ps aux 该命令会显示当前终端下的所有进程信息,包括其他用户的进程。其中,每一行代表一个进程,不同的列显示了该进程的用户账号名称、进程的ID号、CPU占用的百分比、内存占用的百分比、占用虚拟内存的大小、占用常驻内存的大小、该进程在哪个终端上运行、进程当前的状态、启动该进程的时间、该进程占用的CPU时间和启动该进程的命令的名称。 如果你想要实时地查看进程状态并自动刷新,可以使用top命令。top命令会实时地显示系统的进程列表,并按照CPU使用率进行排序,可以通过按下空格键来刷新进程列表。 总结起来,要在Linux系统中显示进程信息,可以使用ps命令或top命令。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [LINUX查看进程的4种方法(小结)](https://blog.youkuaiyun.com/zong596568821xp/article/details/123211238)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [查看liunx系统全部进程](https://blog.youkuaiyun.com/weixin_43214644/article/details/122717009)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值