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 500 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.
Destaques do Livro
Vá Além do Básico: Domine Padrões Profissionais
Mergulhe em tópicos avançados essenciais para aplicações de alta performance, como a criação e gerenciamento de um Thread Pool personalizado, e construa arquiteturas escaláveis que lidam com centenas de tarefas de forma eficiente.
Crie Apps Mobile Realmente Responsivos
Este livro dedica um módulo inteiro às particularidades da concorrência em plataformas mobile. Aprenda a evitar os temidos erros de "Application Not Responding" (ANRs) no Android e a garantir uma experiência de usuário fluida.
Sincronização Desmistificada
Domine TCriticalSection
, TMutex
, TMonitor
, TEvent
e TSemaphore
. Aprenda não apenas como usá-las, mas quando e porquê, com exemplos práticos para prevenir Race Conditions e Deadlocks.
A Elegância da Parallel Programming Library (PPL)
Modernize seu código com TTask
, IFuture
e TParallel.For
. Orquestre fluxos de trabalho complexos, processe dados em paralelo e execute requisições de rede de forma elegante, escrevendo menos código e alcançando mais performance.
Padrões de Arquitetura e Código Limpo
Uma aplicação multithreaded robusta começa com uma boa arquitetura. Aprenda as melhores práticas para organizar seu código, desacoplar a lógica de negócio da UI e criar um código limpo, testável e de fácil manutenção.
Padrões Avançados de Resiliência
Crie threads à prova de falhas. Aprenda a implementar um TCancellationToken
para um cancelamento cooperativo elegante e estratégias de retry com backoff exponencial para lidar com falhas de rede e serviços temporariamente indisponíveis.
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: Por que Usar Threads/Assincronismo? (Benefícios)
- 1.4: O Conceito de Thread
- 1.5: Quando NÃO usar Threads (e buscar alternativas)
2: Fundamentos de Threads em Delphi (TThread básico)
- 2.1: A Classe TThread - Estrutura e Ciclo de Vida
- 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
- 3.2: TMonitor
- 3.3: TMutex
- 3.4: TSemaphore
- 3.5: TEvent
4: Gerenciamento e Cancelamento de Threads
- 4.1: Início e Pausa Controlada
- 4.2: Cancelamento Gentil (Terminate e WaitFor)
- 4.3: Cancelamento Cooperativo com TCancellationToken
- 4.4: Tratamento de Exceções em Threads
- 4.5: Estratégias de Reprocessamento e Retry
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
- 6.2: TTask e ITask
- 6.3: TParallel.For
- 6.4: Coordenação de Tarefas
- 6.5: Cancelamento de Tarefas PPL
7: Tópicos Avançados em Threads
- 7.1: Criando um Thread Pool Personalizado
- 7.2: Gerenciamento de Memória e Multithreading
- 7.3: TInterlocked - Operações Atômicas
8: Melhores Práticas e Depuração
- 8.1: Organização do Código
- 8.2: Coleções Thread-Safe
- 8.3: Prevenção de Deadlocks e Race Conditions
- 8.5: Depuração de Aplicações Multithreaded
9: Threads e Concorrência em Aplicações Mobile
- 9.2: Prevenção de ANRs no Android
- 9.3: Concorrência no iOS: Regras e APIs Nativas
- 9.6: Requisições REST Paralelas
- 9.8: Processamento de Imagens em Lote
10: Exemplos Úteis com PPL
- 10.1: Processamento Paralelo de Arquivos em Lote
- 10.2: Requisições de Rede Assíncronas e Paralelas
- 10.3: Simulações e Cálculos Intensivos
- 10.4: Orquestração de Fluxos de Trabalho Complexos