Multiprocessamento Python e um contador compartilhado
Estou tendo problemas com o módulo de multiprocessamento. Estou usando um pool de trabalhadores com seu método de mapa para carregar dados de muitos arquivos e, para cada um deles, analiso dados com uma função personalizada. Cada vez que um arquivo é processado, eu gostaria de ter um contador atualizado para poder acompanhar quantos arquivos ainda precisam ser processados. Aqui está o código de exemplo:
def analyze_data( args ):
# do something
counter += 1
print counter
if __name__ == '__main__':
list_of_files = os.listdir(some_directory)
global counter
counter = 0
p = Pool()
p.map(analyze_data, list_of_files)
Não consigo encontrar uma solução para isso.