Nesta seção, você aprenderá sobre a simultaneidade do Python, incluindo multithreading, multiprocessamento e programação assíncrona do zero.
O que você aprenderá:
- Crie aplicativos Python responsivos e de alto desempenho usando técnicas de simultaneidade.
- Desenvolva aplicativos multithread usando multithreading.
- Desenvolva um programa que processe tarefas em paralelo.
- Entenda o modelo de simultaneidade de thread único.
Seção 1. Multithreading
Nesta seção, você terá um bom entendimento de processos e threads e de como desenvolver programas multithread.
- Noções básicas sobre processos e threads – ajuda você a entender os processos e threads e as principais diferenças entre eles.
- Threading – mostra como usar o módulo threading para desenvolver um aplicativo multithread.
- Estendendo a classe Thread – aprenda como estender a classe Thread para executar vários threads em um programa.
- Retornando valores de um Thread – mostra como retornar valores de um thread estendendo a classe Thread.
- Exemplo de multithreading – construa um programa multithread que elimina os preços das ações.
- Threads daemon – aprenda sobre threads daemon.
- Pools de threads – orienta você no gerenciamento eficiente de vários threads usando o pool de threads.
Seção 2. Técnicas de sincronização de threads
Nesta seção, você aprenderá várias técnicas para sincronizar entre threads usando um bloqueio, evento, fila thread-safe e semáforo.
- Lock – mostra como usar um objeto lock para controlar o acesso a uma variável compartilhada com segurança a partir de vários threads.
- Evento – aprenda como usar o Evento de threading para comunicação entre threads.
- Como interromper um thread – aprenda como interromper um thread filho do thread principal.
- Semáforo – explique o conceito de semáforo e como usar o objeto Semaphore para limitar o número de threads que podem acessar um recurso compartilhado simultaneamente.
Seção 3. Compartilhando dados entre threads
Nesta seção, você aprenderá diversas técnicas para compartilhar dados entre threads.
- Fila Thread-Safe – mostra como usar uma fila thread-safe para trocar dados com segurança entre vários threads.
Seção 4. Multiprocessamento
Nesta seção, você aprenderá como utilizar o pacote de multiprocessamento para desenvolver programas que executam tarefas em paralelo.
- Multiprocessamento – mostra como executar código em paralelo usando o módulo de multiprocessamento.
- Pools de processos – aprenda como gerenciar processos com mais eficiência usando um pool de processos.
Seção 5. E/S assíncrona
Nesta seção, você aprenderá como utilizar a simultaneidade fornecida pelo asyncio
pacote para melhorar o desempenho, o rendimento e a capacidade de resposta do programa.
- Noções básicas sobre loop de eventos – explique como o loop de eventos funciona e como
asyncio
o pacote usa o loop de eventos para obter um modelo de simultaneidade de thread único. - async/await – apresenta as corrotinas e como usar as palavras-chave async e await para definir e pausar corrotinas.
- Criação de tarefas – aprenda como criar tarefas e agendá-las para execução no loop de eventos.
- Cancelamento de tarefas – mostra como cancelar uma tarefa usando o
cancel()
método doTask
objeto. - Cancelando uma tarefa com tempo limite – mostra como usar a
asyncio.wait_for()
função para cancelar uma tarefa com tempo limite. - asyncio.wait() – aprenda sobre a
asyncio.wait()
função para executar um iterável de objetos aguardáveis simultaneamente. - Futuro – explique para você o objeto Futuro e os aguardáveis.
- Executando múltiplas tarefas simultaneamente com Gather() – execute uma lista de tarefas simultaneamente com a
asyncio.gather()
função.