我想了解我的进程进展情况。目前我使用的方法不太有效。以下是一个
在这种情况下,我正在使用
我正在寻找解决方法,希望能够动态更新
mwe
:import time
from multiprocessing import Pool as ProcessPool
import progressbar
import random
def some_random_calculation(n):
with progressbar.ProgressBar(max_value=n) as bar:
for i in range(0,n):
time.sleep(1)
bar.update(i)
if __name__=='__main__':
arguments = [random.randint(4,10) for i in range(4)]
pool = ProcessPool(4)
results = pool.map_async(some_random_calculation, arguments)
print(results.get())
pool.close()
pool.join()
在这种情况下,我正在使用
progressbar2
,但是当有超过1
个进程时,输出会在同一行上不断更新:
从图片可以看出,进度条以排序顺序呈现,因为在第一个进度条结束后,其他进程会创建一个新的进度条。当有多个进程时,单个进度条会在同一行上更新。我正在寻找解决方法,希望能够动态更新
n
个进度条。然而,也许有更聪明的方法来获取不同进程的进度。有什么建议吗?