156

コードをより「Pythonic」で高速にするために、「マルチプロセッシング」とマップ関数を使用して、a) 関数と b) 反復の範囲を送信します。

埋め込まれたソリューション (つまり、範囲 tqdm.tqdm(range(0, 30)) で tqdm を直接呼び出す) は、マルチプロセッシングでは機能しません (以下のコードで定式化されているように)。

進行状況バーは 0 から 100% まで表示されますが (python がコードを読み取ったとき?)、マップ関数の実際の進行状況を示すものではありません。

「マップ」機能がどの段階にあるかを示す進行状況バーを表示する方法は?

from multiprocessing import Pool
import tqdm
import time

def _foo(my_number):
   square = my_number * my_number
   time.sleep(1)
   return square 

if __name__ == '__main__':
   p = Pool(2)
   r = p.map(_foo, tqdm.tqdm(range(0, 30)))
   p.close()
   p.join()

どんな助けや提案も大歓迎です...

4

9 に答える 9