我正在尝试通过多进程使用 tqdm
,但行为不如预期。我认为问题在于 pbar
的值没有在进程间更新。那么如何解决这个问题?我也尝试手动使用 Value
更新 pbar.n
,但仍然失败。似乎 tqdm
不支持手动更新值和手动渲染。
def test(lock, pbar):
for i in range(10000):
sleep(0.1)
lock.acquire()
pbar.update()
lock.release()
pbar = tqdm(total = 10000)
lock = Lock()
for i in range(5):
Process(target = test, args = (lock, pbar))
proc.join()
处永久阻塞外,它运行良好。我认为可以通过在proc.join()
之前添加q.put(None)
来结束监听器进程来解决这个问题。非常感谢。 - Sraw