栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在python中通过多进程使用tqdm?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在python中通过多进程使用tqdm?

通常,每个进程都有自己的数据,而与其他每个进程无关。生成新进程(

os.fork
在Unix上调用)会创建当前进程的副本。每个进程都获得自己的所有全局值的副本(例如
pbar
)。每个进程的全局变量可以与其他进程中的变量共享相同的名称,但是每个进程可以拥有一个独立的值。

在您的情况下,您似乎只希望其中一个

pbar
存在,并且对的所有调用
update
都应更新该一个
pbar
。因此
pbar
,仅在一个进程中创建,然后使用
Queue
将信号发送到该进程进行更新
pbar

import multiprocessing as mpSENTINEL = 1def test(q):    for i in range(10000):        sleep(0.1)        q.put(SENTINEL)def listener(q):    pbar = tqdm(total = 10000)    for item in iter(q.get, None):        pbar.update()if __name__ == '__main__':    q = mp.Queue()    proc = mp.Process(target=listener, args=(q,))    proc.start()    workers = [mp.Process(target=test, args=(q,)) for i in range(5)]    for worker in workers:        worker.start()    for worker in workers:        worker.join()    q.put(None)    proc.join()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/660084.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号