Concorrência em Java: Multithreading, Paralelismo e Assincronia na Prática
300 páginas
Portuguese
PDF
4.5

Concorrência em Java: Multithreading, Paralelismo e Assincronia na Prática

Concorrência em Java: Multithreading, Paralelismo e Assincronia na Prática

Autor:

Ano:

Resumo:

As aplicações modernas precisam ser rápidas e responsivas. Mas escrever código multithread correto é uma das tarefas mais difíceis na programação. Condições de corrida, deadlocks, problemas de visibilidade e desempenho espreitam o desenvolvedor a cada passo. O livro «Concorrência em Java» é um guia prático que o ajudará a dominar todos os aspetos da programação paralela em Java: desde os clássicos mecanismos de baixo nível até as abstrações modernas de alto nível e os recursos experimentais do Project Loom.



Sobre o que é este livro?

O livro é estruturado no princípio "do simples ao complexo". Você começará com os fundamentos: o que é uma thread (Thread), como criá-la e iniciá-la, quais problemas surgem ao trabalhar com dados compartilhados. Em seguida, mergulhará no mundo da sincronização: synchronized, volatile, java.util.concurrent.locks e classes atómicas. Depois, estudará pools de threads (ExecutorService, ForkJoinPool), aprenderá a gerenciar tarefas de forma eficiente e evitar "vazamento de threads". Capítulos dedicados incluem:

  • CompletableFuture e programação assíncrona — construção de pipelines de processamento de dados não bloqueantes.
  • Streams e coleções paralelas — uso seguro de Stream.parallel() e ConcurrentHashMap.
  • Testes de código multithread — utilitários, padrões (Awaitility, Thread Weaver) e erros típicos.
  • Project Loom (threads virtuais) — uma nova abordagem para concorrência que promete simplificar a escrita de aplicações servidoras escaláveis.


Para quem é este livro?

A obra será útil para:

  • Desenvolvedores Júnior, que já conhecem a sintaxe Java e querem entender como o multithreading funciona.
  • Desenvolvedores Pleno, que enfrentam bugs em produção e desejam sistematizar seus conhecimentos.
  • Arquitetos e Team Leads, que tomam decisões sobre a escolha do modelo de concorrência para sistemas de alta carga.


O que você aprenderá?

Após a leitura, você será capaz de:

  • Projetar arquiteturas multithread de forma competente, evitando deadlocks e condições de corrida.
  • Escolher a ferramenta certa para cada tarefa: desde ReentrantLock até Phaser e CompletableFuture.
  • Configurar pools de threads para cenários específicos (CPU-bound, I/O-bound).
  • Escrever algoritmos paralelos seguros e testáveis.
  • Compreender o funcionamento interno da JVM e do JMM (Java Memory Model) num nível suficiente para depurar problemas complexos.

Cada capítulo contém exemplos de código que podem ser baixados e executados, além de exercícios para autoavaliação. O livro é escrito numa linguagem viva, sem academicismo excessivo, mas com um mergulho profundo nos detalhes técnicos.



«Concorrência em Java» não é apenas um guia de referência, mas um manual de consulta ao qual você voltará repetidamente ao projetar aplicações Java performáticas e confiáveis.

Recommendations