Per rendere il mio codice più "pitonico" e più veloce, utilizzo "multiprocessing" e una funzione map per inviarlo a) la funzione eb) l'intervallo di iterazioni.
La soluzione impiantata (ovvero, chiamare tqdm direttamente nell'intervallo tqdm.tqdm (intervallo (0, 30)) non funziona con il multiprocessing (come formulato nel codice seguente).
La barra di avanzamento viene visualizzata da 0 a 100% (quando Python legge il codice?) Ma non indica l'effettivo progresso della funzione mappa.
Come visualizzare una barra di avanzamento che indica in quale fase si trova la funzione "mappa"?
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()
Qualsiasi aiuto o suggerimento è il benvenuto ...