0
私はワーカー関数でいくつかのargsが必要なので、私はstarmapを使いますが、どのように進捗状況をtqdmで表示できますか?pythonマルチプロセッシングstarmapプログレスバー
from itertools import repeat
from multiprocessing import Pool
def func(i, a, b, c):
print(i, a, b, c)
if __name__ == '__main__':
pool = Pool(thread_num)
a, b, c = 'a', 'b', 'c'
pool.starmap(func, zip(range(100), repeat(a), repeat(b), repeat(c)))
pool.close()
pool.join()
私はどのようにしてtqdmにプレビューを表示できますか?
いくつかの引数ではなく1つのタプル引数を受け取るように関数を変更することはできますか?そうすれば 'starmap'の代わりに' imap'ができるようになります。そのため、メインプロセスは入ってくる結果をループしてプログレスバーを更新することができます。残念ながら、istarmapはありません!あなたが変更できない関数(ライブラリからのものなど)に対してのみこれを行う必要がある場合は、トップレベルで定義された 'def wrapper(tup):func(* tup)'関数でラップすることができます。 – Blckknght