Catalog · How the catalog works
DelphiMultithreadingBookCode
Este repositório contém todo o código-fonte dos exemplos práticos do livro "Delphi Multithreading: Threads, Concorrência, Paralelismo e Assincronismo", escrito por Cesar Romero.
Anyone may press Interesting, signed in or not. It helps others find this project.
README
Delphi Multithreading: Threads, Concorrência, Paralelismo e Assincronismo - Código-Fonte Oficial
English Edition Repository
Este repositório contém todo o código-fonte dos exemplos práticos do livro "Delphi Multithreading: Threads, Concorrência, Paralelismo e Assincronismo", escrito por Cesar Romero.
📖 Sobre o Livro
A interface travada durante uma operação demorada é o inimigo silencioso de qualquer aplicação moderna. Este livro é o mapa definitivo para dominar a programação concorrente em Delphi, guiando o leitor desde os fundamentos da TThread clássica até a maestria da moderna Parallel Programming Library (PPL).
Baseado em 30 anos de experiência em arquitetura de software, esta obra foi projetada para ser um curso de formação completo, tanto para o programador que está dando seus primeiros passos em threads quanto para o arquiteto que busca otimizar a performance em cenários de alta demanda. Ao final desta jornada, você terá a confiança e a visão arquitetural para projetar e construir aplicações Delphi que não apenas funcionam, mas que encantam o usuário com sua performance e responsividade.

🛒 Onde Comprar
O livro está disponível em formato impresso em diversas lojas ao redor do mundo.
Principal Loja para o Brasil (Impressão Nacional):
O livro também é distribuído pelo Clube de Autores para: Equador, México, Nova Zelândia e Portugal.
🚀 Sobre os Projetos
Este repositório está organizado em pastas por capítulo, correspondendo à estrutura do livro. Cada projeto de exemplo foi cuidadosamente criado para demonstrar um conceito específico de concorrência de forma prática e isolada.
- Capítulo 1: Introdução ao Processamento Concorrente e Assíncrono
* Demonstra o problema do "UI Freeze" e introduz os conceitos te??ricos fundamentais.- Capítulo 2: Fundamentos de Threads em Delphi (
TThreadbásico)
* Exemplos pr??ticos de cria????o, gerenciamento de ciclo de vida e comunica????o segura com a UI usando `Synchronize` e `Queue`.- Capítulo 3: Sincronização de Threads
* Projetos que demonstram o uso de cada primitiva de sincroniza????o: `TCriticalSection`, `TMonitor`, `TMutex`, `TSemaphore`, `TEvent`, `TLightweightMREW`, `TCountdownEvent` e `WaitForMultipleObjects`.- Capítulo 4: Gerenciamento e Cancelamento de Threads
* Implementa????o de padr??es para pausa, retomada e cancelamento cooperativo (`Terminate`, `TCancellationToken`), al??m de estrat??gias de tratamento de exce????es e *retry*.- Capítulo 5: Alternativas Assíncronas
* Explora????o de t??cnicas de assincronismo que v??o al??m da `TThread`, incluindo comunica????o via `PostMessage` e o padr??o *Pub/Sub* com `System.Messaging`.- Capítulo 6: Parallel Programming Library (PPL)
* Demonstra????es do poder da PPL com `TTask`, `IFuture<T>`, `TParallel.For` e a coordena????o de m??ltiplas tarefas.- Capítulo 7: Tópicos Avançados em Threads
* Projetos que exploram a constru????o de um *pool* de *threads* personalizado, o uso de `TInterlocked` para performance extrema e o gerenciamento avan??ado da PPL.- Capítulo 8: Melhores Práticas e Depuração
* Exemplos que consolidam as melhores pr??ticas de arquitetura, como o desacoplamento de *threads*, o uso de `threadvar` e a preven????o de *deadlocks*.- Capítulo 9: Threads em Aplicações Mobile (Android e iOS)
* Projetos FMX que resolvem desafios do mundo real, como requisi????es REST paralelas e o processamento de imagens da galeria sem travar a UI.- Capítulo 10: Exemplos Úteis com PPL
* Implementa????o de padr??es de arquitetura complexos, como processamento de arquivos em lote, consumo de APIs paginadas e *pipelines* com m??quina de estado.- Capítulo 11: Aplicações Práticas de Banco de Dados
* A culmina????o do livro: um projeto completo que demonstra uma arquitetura concorrente de n??vel s??nior para acesso a banco de dados, usando PPL, Repository, Factory e Inje????o de Depend??ncia.📚 Conteúdo Completo do Livro
Aqui está o sumário detalhado da obra.
1: Introdução ao Processamento Concorrente e Assíncrono
-
-
- O Problema do Congelamento da Interface (UI Freeze)
-
-
-
- O que é Processamento Concorrente e Assíncrono?
-
-
-
- Uma Breve História da Concorrência: Da TThread à PPL
-
-
-
- Os Verdadeiros Objetivos da Concorrência
-
-
-
- O Conceito de Thread
-
-
-
- Quando NÃO usar Threads (e buscar alternativas)
-
2: Fundamentos de Threads em Delphi (TThread básico)
-
-
- Criando e Gerenciando Threads Simples
-
-
-
- Comunicando com a Thread Principal (Synchronize e Queue)
-
-
-
- Lidando com Múltiplas Threads e Dados Compartilhados
-
-
-
- Threads Anônimas (TThread.CreateAnonymousThread)
-
3: Sincronização de Threads
-
-
- TCriticalSection - Aprofundando na Exclusão Mútua Simples
-
-
-
- TMonitor - Sincronização de Múltiplas Threads
-
-
-
- TMutex - Sincronização entre Processos
-
-
-
- TSemaphore - Controle de Acesso a Recursos Limitados
-
-
-
- TEvent - Sinalização entre Threads
-
-
-
- Otimizando Acesso Concorrente: O Padrão Leitores-Escritores
-
-
-
- TCountdownEvent - Sincronizando a Conclusão de Múltiplas Tarefas
-
-
-
- WaitForMultipleObjects: Espera Coordenada
-
4: Gerenciamento e Cancelamento de Threads
-
-
- Início e Pausa Controlada de Threads
-
-
-
- Cancelamento Gentil de Threads (Terminate e WaitFor)
-
-
-
- Cancelamento Cooperativo com TCancellationToken
-
-
-
- Gerenciando a Prioridade de Execução (TThread.Priority)
-
-
-
- Tratamento de Exceções em Threads
-
-
-
- Estratégias de Reprocessamento e Retry em Threads
-
5: Alternativas Assíncronas
-
-
- PostMessage e SendMessage
-
-
-
- I/O Assíncrono (Visão Geral)
-
-
-
- Integração de I/O Assíncrono com Threads
-
-
-
- Padrão de Execução Assíncrona na Main Thread
-
-
-
- Comunicação via System.Messaging
-
6: Parallel Programming Library (PPL)
-
-
- Introdução à PPL
-
-
-
- O Coração da PPL: ITask para Ações e IFuture<T> para Resultados
-
-
-
- TParallel.For - Paralelizando Loops
-
-
-
- Coordenação de Tarefas (WaitForAll, WaitForAny)
-
-
-
- Cancelamento de Tarefas PPL
-
-
-
- Outros Recursos da PPL: TParallelArray
-
7: Tópicos Avançados em Threads
-
-
- Criando um Thread Pool Personalizado
-
-
-
- TInterlocked - Operações Atômicas
-
-
-
- Gerenciamento de Memória e Multithreading
-
-
-
- Gerenciamento Avançado da PPL
-
-
-
- Sincronização Condicional: TConditionVariableCS
-
8: Melhores Práticas e Depuração
-
-
- Organização do Código
-
-
-
- Evitando Concorrência com threadvar
-
-
-
- Coleções Thread-Safe
-
-
-
- Prevenção de Deadlocks e Race Conditions
-
-
-
- Técnicas para Minimizar Trocas de Contexto
-
-
-
- Depuração de Aplicações Multithreaded
-
-
-
- Problemas Comuns e Como Resolvê-los
-
-
-
- Recomendações Finais
-
9: Threads em Aplicações Mobile (Android e iOS)
-
-
- Introdução à Concorrência em Mobile
-
-
-
- Prevenção de ANRs no Android
-
-
-
- Concorrência no iOS: Regras e APIs
-
-
-
- Cuidados Específicos de Cada Plataforma
-
-
-
- Evolução dos Recursos para Threads Mobile
-
-
-
- Requisições REST Paralelas
-
-
-
- Lendo e Processando Imagens da Galeria
-
-
-
- Processamento em Lote para Máxima Velocidade
-
-
-
- Recomendações Finais para Mobile
-
10: Exemplos Úteis com PPL
-
-
- Processamento Paralelo de Múltiplos Arquivos
-
-
-
- Requisições de Rede Assíncronas com Paginação
-
-
-
- Simulações e Cálculos Intensivos
-
-
-
- Orquestração de Fluxos de Trabalho Complexos
-
-
-
- Pipeline de Tarefas com Máquina de Estado
-
11: Aplicações Práticas de Banco de Dados
-
-
- Os Princípios Inegociáveis (A Doutrina)
-
-
-
- Exemplo Essencial: TDataModule em uma TThread
-
-
-
- Otimização com Connection Pooling do FireDAC
-
-
-
- Alternativa Sem Threads: Execução Assíncrona (amAsync)
-
-
-
- Arquitetura Concorrente Completa com PPL
-
-
-
- Considerações Específicas para DBExpress
-
Apêndice
- Apêndice A: Guia Rápido das Primitivas de Sincronização
🐞 Feedback e Contribuições
Este livro e seu código-fonte são feitos para a comunidade. Seu feedback é fundamental!
- Para Problemas no Código-Fonte: Se encontrar um bug, uma dificuldade para compilar, ou tiver uma sugestão de melhoria nos exemplos, por favor, abra uma Issue neste repositório.
- Para Erros no Texto do Livro: Se encontrar um erro de digitação, uma explicação que não ficou clara, ou uma imprecisão técnica no conteúdo do livro, por favor, envie um e-mail para delphimultithreadingbook@gmail.com.
👨💻 Sobre o Autor
Cesar Romero é Arquiteto de Software, Embarcadero MVP e um veterano com quase 30 anos de experiência na plataforma Delphi. Palestrante e instrutor, é especialista em projetar sistemas de alta performance para Desktop, Cloud e Mobile, compartilhando ativamente seu conhecimento com a comunidade de desenvolvedores.

