Multiprocessamento: use tqdm para exibir uma barra de progresso

| | | | | | | | | | | | | | |

Para tornar meu código mais "pythonic" e mais rápido, uso "multiprocessing" e uma função map para enviar a) a função eb) o intervalo de iterações.

A solução implantada (ou seja, , chame tqdm diretamente no intervalo tqdm.tqdm(range(0, 30)) não funciona com multiprocessamento (conforme formulado no código abaixo).

A barra de progresso é exibida de 0 a 100% ( quando python lê o código?) mas não indica o progresso real da função map.

Como exibir uma barra de progresso que indica em qual etapa a função "map" está?

strong>

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() 

Qualquer ajuda ou sugestões são bem-vindas ...