Concorrência em Java: Guia Prático de Programação Multithread
Concorrência em Java: Guia Prático de Programação Multithread
Resumo:
O livro «Concorrência em Java» é um guia prático completo para escrever aplicações multithread eficientes, seguras e escaláveis em Java. O autor, Alexei Smirnov, desenvolvedor sênior com 10 anos de experiência, conduz o leitor sequencialmente desde as abordagens clássicas (Thread, Runnable) até as ferramentas modernas (CompletableFuture, threads virtuais do Project Loom).
O material é construído no princípio «do simples ao complexo»: cada capítulo contém teoria, exemplos de código, erros típicos e suas soluções. Atenção especial é dada aos aspetos práticos: você aprenderá não apenas a escrever código multithread, mas também a depurá-lo, perfilá-lo e evitar problemas «infernais» como deadlock, livelock e race condition.
Para quem é este livro?
- Desenvolvedores Java de nível Junior — dominarão a base: criação de threads, sincronização, wait/notify.
- Desenvolvedores Middle — aprofundarão conhecimentos: pools de threads, Fork/Join, Stream API paralelos.
- Todos que estão migrando do Java 8 para versões mais recentes (11, 17, 21+) — entenderão CompletableFuture e threads virtuais.
O que você aprenderá?
- Como as threads funcionam na JVM e no sistema operacional.
- Regras de sincronização: synchronized, Lock, Semaphore, CountDownLatch.
- Coleções seguras do java.util.concurrent.
- ExecutorService e pools de threads personalizados.
- Programação assíncrona com CompletableFuture.
- O mais recente mecanismo de threads virtuais (Project Loom) — como e quando aplicar.
- Teste de código multithread com JUnit e jcstress.
O livro é escrito em linguagem viva, sem academicismo excessivo. Cada exemplo pode ser executado e modificado imediatamente. No final dos capítulos, há perguntas de autoavaliação e tarefas práticas.
Este é um livro de referência para qualquer desenvolvedor Java que deseja escrever aplicações rápidas, confiáveis e escaláveis. Independentemente de estar a criar um servidor de alta carga, uma aplicação desktop ou a processar Big Data, o conhecimento de concorrência é uma habilidade obrigatória.
Após a leitura, você será capaz de projetar sistemas multithread com confiança, evitar armadilhas típicas e utilizar eficazmente todos os núcleos do processador.