Por que o multi-threading não está fazendo meu código Python mais rápido? Como posso corrigi-lo?
Python restringe o acesso ao interpretador com um bloqueio de interpretador global, referido como GIL, para requisitos internos de segurança de threads. Infelizmente, essa decisão de projeto restringe apenas permite que um thread interprete o código Python de cada vez, mesmo em uma máquina com a capacidade de executar vários threads juntos. Se você deseja executar o código Python em um conjunto de dados, e os dados podem ser divididos em segmentos independentes (um processo conhecido como particionamento de dados), você pode querer olhar para a biblioteca de multiprocessamento no Python. Como exemplo, considere a função foo que toma um argumento, arg1, e diga que você queria executar a função foo em um número de valores, digamos, val1, val2, e val3. defarg foo: # 1) Faça algo se __name__ == 'main__val': # 2) Para ter vários processos executados em foo, você poderia usar o multiprocessador para executar vários processos de trabalho juntos: defragmentar vários processos juntos: # 1) Se você conhece o programa, o multiprocessador também fornece algo para fazer.