Capa do Livro Delphi Multithreading

Delphi Multithreading

Threads, Concorrência, Paralelismo e Assincronismo

O Guia Definitivo para Criar Aplicações Delphi Modernas, Rápidas e Responsivas.

Oferta de Lançamento (Brasil)

R$ 297,75 R$ 267,67 10% OFF

Comprar no Brasil (Clube de Autores)

Impressão nacional com frete acessível.

Lojas Internacionais:

Amazon USA ($54.99) | Amazon Espanha (€49.11)

Também disponível na Alemanha, Austrália, Canadá, Equador, México, Nova Zelândia e Portugal via Clube de Autores.

Sua aplicação Delphi congela em operações demoradas?

Você sente que não está aproveitando todo o poder dos processadores multi-core modernos? É hora de dominar a programação concorrente e o paralelismo.

Este livro é um guia prático e completo, escrito por um Embarcadero MVP com quase 30 anos de experiência. Do básico da TThread à elegância da Parallel Programming Library (PPL), você aprenderá a construir aplicações robustas, evitar os temidos "UI Freezes", e resolver problemas complexos como race conditions e deadlocks.

Com quase 550 páginas, esta é uma formação completa que te leva do zero ao nível profissional. Prepare-se para transformar suas aplicações desktop, mobile, web e cloud entregando a performance e a fluidez que seus usuários esperam.

Para Quem é Este Livro?

Para o Desenvolvedor Iniciante

Se você está começando com threads, este livro é o seu guia. Aprenda os fundamentos de forma clara, com exemplos passo a passo, e construa uma base sólida para evitar os erros mais comuns.

Para o Desenvolvedor Experiente

Eleve suas habilidades a um novo patamar. Aprofunde-se em primitivas de sincronização, domine a PPL, e aprenda a aplicar padrões de arquitetura avançados para criar aplicações mais robustas e escaláveis.

Para o Arquiteto de Software

Projete sistemas de alta performance. Entenda as nuances do gerenciamento de memória, as particularidades do desenvolvimento mobile e os padrões de resiliência essenciais para sistemas críticos.

O que Você Vai Dominar com Este Livro

  • Acabar com o "UI Freeze": Aprenda a aplicar os padrões corretos para manter suas aplicações VCL e FMX 100% responsivas, delegando tarefas demoradas para o segundo plano de forma segura.
  • Prevenir Erros de Concorrência: Domine as primitivas de sincronização (TCriticalSection, TEvent, TMonitor) para proteger dados compartilhados e evitar os temidos deadlocks e race conditions.
  • Escolher a Ferramenta Certa: Entenda de uma vez por todas quando usar a TThread clássica e quando aproveitar o poder da moderna Parallel Programming Library (PPL) com TTask e TParallel.For.
  • Construir Arquiteturas Profissionais: Vá além do código e aprenda a projetar sistemas concorrentes robustos e de fácil manutenção, aplicando padrões como Repository, Factory, Injeção de Dependência e Máquinas de Estado.
  • Conquistar o Mobile: Domine as particularidades da concorrência no Android e iOS, aprendendo a evitar ANRs, processar imagens da galeria e consumir APIs em paralelo sem impactar a experiência do usuário.

Sumário Completo

1: Introdução ao Processamento Concorrente e Assíncrono

  • 1.1 - O Problema do Congelamento da Interface (UI Freeze)
  • 1.2 - O que é Processamento Concorrente e Assíncrono?
  • 1.3 - Uma Breve História da Concorrência: Da TThread à PPL
  • 1.4 - Os Verdadeiros Objetivos da Concorrência
  • 1.5 - O Conceito de Thread
  • 1.6 - Quando NÃO usar Threads (e buscar alternativas)

2: Fundamentos de Threads em Delphi (TThread básico)

  • 2.1 - Criando e Gerenciando Threads Simples
  • 2.2 - Comunicando com a Thread Principal (Synchronize e Queue)
  • 2.3 - Lidando com Múltiplas Threads e Dados Compartilhados
  • 2.4 - Threads Anônimas (TThread.CreateAnonymousThread)

3: Sincronização de Threads

  • 3.1 - TCriticalSection - Aprofundando na Exclusão Mútua Simples
  • 3.2 - TMonitor - Sincronização de Múltiplas Threads
  • 3.3 - TMutex - Sincronização entre Processos
  • 3.4 - TSemaphore - Controle de Acesso a Recursos Limitados
  • 3.5 - TEvent - Sinalização entre Threads
  • 3.6 - Otimizando Acesso Concorrente: O Padrão Leitores-Escritores
  • 3.7 - TCountdownEvent - Sincronizando a Conclusão de Múltiplas Tarefas
  • 3.8 - WaitForMultipleObjects: Espera Coordenada

4: Gerenciamento e Cancelamento de Threads

  • 4.1 - Início e Pausa Controlada de Threads
  • 4.2 - Cancelamento Gentil de Threads (Terminate e WaitFor)
  • 4.3 - Cancelamento Cooperativo com TCancellationToken
  • 4.4 - Gerenciando a Prioridade de Execução (TThread.Priority)
  • 4.5 - Tratamento de Exceções em Threads
  • 4.6 - Estratégias de Reprocessamento e Retry em Threads

5: Alternativas Assíncronas

  • 5.1 - PostMessage e SendMessage
  • 5.2 - I/O Assíncrono (Visão Geral)
  • 5.3 - Integração de I/O Assíncrono com Threads
  • 5.4 - Padrão de Execução Assíncrona na Main Thread
  • 5.5 - Comunicação via System.Messaging

6: Parallel Programming Library (PPL)

  • 6.1 - Introdução à PPL - O Salto para a Programação Baseada em Tarefas
  • 6.2 - O Coração da PPL: ITask para Ações e IFuture<T> para Resultados
  • 6.3 - TParallel.For - Paralelizando Loops
  • 6.4 - Coordenação de Tarefas (WaitForAll, WaitForAny)
  • 6.5 - Cancelamento de Tarefas PPL
  • 6.6 - Outros Recursos da PPL: TParallelArray

7: Tópicos Avançados em Threads

  • 7.1 - Criando um Thread Pool Personalizado
  • 7.2 - TInterlocked - Operações Atômicas para Performance Extrema
  • 7.3 - Gerenciamento de Memória e Multithreading
  • 7.4 - Gerenciamento Avançado da PPL
  • 7.5 - Sincronização Condicional: TConditionVariableCS

8: Melhores Práticas e Depuração

  • 8.1 - Organização do Código
  • 8.2 - Evitando Concorrência com threadvar
  • 8.3 - Dados Compartilhados e Coleções Thread-Safe
  • 8.4 - Prevenção de Deadlocks e Race Conditions
  • 8.5 - Técnicas para Minimizar Trocas de Contexto
  • 8.6 - Depuração de Aplicações Multithreaded
  • 8.7 - Problemas Comuns e Como Resolvê-los
  • 8.8 - Recomendações Finais e Conclusões

9: Threads em Aplicações Mobile (Android e iOS)

  • 9.1 - Introdução à Concorrência em Mobile
  • 9.2 - Prevenção de ANRs no Android
  • 9.3 - Concorrência no iOS: Regras e APIs
  • 9.4 - Cuidados Específicos de Cada Plataforma
  • 9.5 - Evolução dos Recursos para Threads Mobile
  • 9.6 - Requisições REST Paralelas
  • 9.7 - Lendo e Processando Imagens da Galeria
  • 9.8 - Processamento em Lote para Máxima Velocidade
  • 9.9 - Recomendações Finais para Mobile

10: Exemplos Úteis com PPL

  • 10.1 - Processamento Paralelo de Múltiplos Arquivos
  • 10.2 - Requisições de Rede Assíncronas com Paginação
  • 10.3 - Simulações e Cálculos Intensivos
  • 10.4 - Orquestração de Fluxos de Trabalho Complexos
  • 10.5 - Pipeline de Tarefas com Máquina de Estado

11: Aplicações Práticas de Banco de Dados

  • 11.1 - Os Princípios Inegociáveis (A Doutrina)
  • 11.2 - Exemplo Essencial: TDataModule em uma TThread
  • 11.3 - Otimização com Connection Pooling do FireDAC
  • 11.4 - Alternativa Sem Threads: Execução Assíncrona (amAsync)
  • 11.5 - Arquitetura Concorrente Completa com PPL
  • 11.6 - Considerações Específicas para DBExpress

Apêndice

  • Apêndice A: Guia Rápido das Primitivas de Sincronização

Sobre o Autor

Foto de Cesar Romero

Cesar Romero é um Arquiteto de Software, Engenheiro de Sistemas e um veterano da plataforma Delphi, com a qual tem trabalhado apaixonadamente desde 1996, nos primórdios da ferramenta. Com uma carreira de quase 30 anos, ele acumulou uma vasta experiência liderando equipes e projetando arquiteturas de software robustas para sistemas críticos em ambientes Windows, Linux, Cloud e Mobile.

Sua expertise não se limita a uma única linguagem; Cesar é um poliglota da programação, com profundo conhecimento em C#, Python, Go, JavaScript e Java, além de bancos de dados relacionais e NoSQL. Essa visão ampla lhe confere uma perspectiva única sobre os desafios do desenvolvimento de software moderno, desde a migração de sistemas legados até a orquestração de microserviços em nuvem com Azure Kubernetes Service (AKS).

Como um Embarcadero MVP, Cesar é uma voz ativa e respeitada na comunidade de desenvolvedores. Ele é um palestrante frequente em eventos no Brasil e no exterior, além de ter atuado como autor e instrutor em treinamentos para equipes de desenvolvimento, sempre com o objetivo de compartilhar conhecimento prático e de alto nível.

Este livro nasceu do desejo de preencher uma lacuna, consolidando anos de estudo e experiência prática em um guia definitivo sobre multithreading, concorrência e paralelismo – um dos tópicos mais desafiadores e essenciais para a criação de aplicações Delphi verdadeiramente modernas e performáticas.