7 pontos por darjeeling 2025-09-16 | Ainda não há comentários. | Compartilhar no WhatsApp

Conclusão

No build free-threaded do Python 3.14, o asyncio passou a permitir execução realmente paralela ao remover o bloqueio global do interpretador (GIL) e migrar para o gerenciamento de estado por thread. Com isso, o desempenho escala linearmente de acordo com o número de threads, permitindo executar vários event loops em paralelo e abrindo novas possibilidades para aplicações asyncio multithread de alto desempenho.


Principais mudanças

  • Remoção do GIL (Global Interpreter Lock): o build free-threaded do CPython remove o GIL, permitindo que várias threads executem código Python ao mesmo tempo.
  • Garantia de segurança entre threads: o asyncio passou a usar gerenciamento de estado por thread em vez de estruturas de dados globais para garantir segurança entre threads.
    • Armazenamento de tarefas: no lugar do WeakSet global, foi usada uma lista circular duplamente encadeada por thread, eliminando contenção de lock e o overhead de referências fracas.
    • Armazenamento da tarefa atual: a “tarefa atual” passou a ser armazenada no estado da thread, permitindo acesso mais rápido e sem lock.

Ganhos de desempenho

  • Escalonamento linear de desempenho: os resultados de benchmark mostraram que, no build free-threaded, o desempenho do asyncio melhora linearmente à medida que o número de threads aumenta.
  • Benchmark de TCP: em comparação com o build com GIL ativado, o build free-threaded apresentou um aumento significativo de throughput.
  • Benchmark de web scraping: no benchmark de web scraping com aiohttp, ao usar vários workers no build free-threaded, o desempenho melhorou mais de 2 vezes.

Ainda não há comentários.

Ainda não há comentários.