Java Concurrency
Tronco em transição
Este tronco foi integralmente migrado para o galho Concorrência e paralelismo (16 notas em 3 fases). O conteúdo abaixo é um índice de redirecionamento; cada seção aponta para a nota canônica. Mantido por histórico e compatibilidade de wikilinks.
Deep dive em concorrência e paralelismo na JVM — do Java Memory Model e happens-before até Virtual Threads e Structured Concurrency. Uma das áreas mais cobradas em entrevistas senior de Java, e uma das mais mal compreendidas. Para fundamentos gerais de Java, ver Java Fundamentals.
O que é
Migrado para galho próprio
Este tópico foi expandido no galho Concorrência e paralelismo. Veja em particular 01 - Concorrência e paralelismo: o modelo e 02 - Threads e seu ciclo de vida.
Threads na JVM
Migrado para galho próprio
Este tópico foi expandido no galho Concorrência e paralelismo. Veja em particular 01 - Concorrência e paralelismo: o modelo e 02 - Threads e seu ciclo de vida.
Java Memory Model (JMM)
Migrado para galho próprio
Este tópico foi expandido no galho Concorrência e paralelismo. Veja em particular 11 - Java Memory Model em profundidade.
Synchronized
Migrado para galho próprio
Este tópico foi expandido no galho Concorrência e paralelismo. Veja em particular 03 - Exclusão mútua com synchronized e 11 - Java Memory Model em profundidade.
java.util.concurrent.locks
Migrado para galho próprio
Este tópico foi expandido no galho Concorrência e paralelismo. Veja em particular 05 - Locks explícitos.
Atomic classes
Migrado para galho próprio
Este tópico foi expandido no galho Concorrência e paralelismo. Veja em particular 06 - Atômicos e operações lock-free.
Concurrent Collections
Migrado para galho próprio
Este tópico foi expandido no galho Concorrência e paralelismo. Veja em particular 07 - Concurrent collections.
ExecutorService e Thread Pools
Migrado para galho próprio
Este tópico foi expandido no galho Concorrência e paralelismo. Veja em particular 08 - Executors e thread pools.
CompletableFuture
Migrado para galho próprio
Este tópico foi expandido no galho Concorrência e paralelismo. Veja em particular 10 - CompletableFuture e composição assíncrona.
Sincronizadores
Migrado para galho próprio
Este tópico foi expandido no galho Concorrência e paralelismo. Veja em particular 09 - Sincronizadores.
ForkJoinPool
Migrado para galho próprio
Este tópico foi expandido no galho Concorrência e paralelismo. Veja em particular join.
Parallel Streams
Migrado para galho próprio
Este tópico foi expandido no galho Concorrência e paralelismo. Veja em particular join.
Virtual Threads (Java 21+)
Migrado para galho próprio
Este tópico foi expandido no galho Concorrência e paralelismo. Veja em particular 12 - Virtual Threads e Project Loom.
Structured Concurrency (Java 21 preview, 25 final)
Migrado para galho próprio
Este tópico foi expandido no galho Concorrência e paralelismo. Veja em particular 13 - Structured concurrency.
Scoped Values (Java 25 final)
Migrado para galho próprio
Este tópico foi expandido no galho Concorrência e paralelismo. Veja em particular 14 - Scoped values.
Deadlock, Race Condition e companhia
Migrado para galho próprio
Este tópico foi expandido no galho Concorrência e paralelismo. Veja em particular 04 - As armadilhas: race, deadlock e companhia e 11 - Java Memory Model em profundidade.
Patterns de design concorrente
Migrado para galho próprio
Este tópico foi expandido no galho Concorrência e paralelismo. Veja em particular 16 - Padrões e diagnóstico de concorrência.
Debugging e profiling
Migrado para galho próprio
Este tópico foi expandido no galho Concorrência e paralelismo. Veja em particular 16 - Padrões e diagnóstico de concorrência.
Armadilhas comuns
Migrado para galho próprio
Este tópico foi expandido no galho Concorrência e paralelismo. Veja em particular 16 - Padrões e diagnóstico de concorrência.
Na prática
Migrado para galho próprio
Padrões práticos e armadilhas de produção foram reescritos de forma neutra em 16 - Padrões e diagnóstico de concorrência.
How to explain in English
Migrado para galho próprio
Vocabulário de entrevista e frases em inglês agora vivem na seção “Em entrevista” de cada nota do galho Concorrência e paralelismo.
Recursos
Livros essenciais
- Java Concurrency in Practice — Brian Goetz et al. (2006, mas ainda é A referência)
- Modern Java in Action — Raoul-Gabriel Urma, Mario Fusco, Alan Mycroft
- The Well-Grounded Java Developer — Benjamin Evans, Jason Clark (capítulos sobre concorrência e JMM)
Documentação oficial
- Java Concurrency Tutorial
- Java Memory Model (JSR 133)
- java.util.concurrent API
- Virtual Threads (JEP 444)
- Structured Concurrency (JEP 505)
- Scoped Values (JEP 506)
Artigos
- Brian Goetz — Going inside Java’s Project Loom
- Virtual Threads: Dude, Where’s My Lock? — pinning explicado
- Doug Lea’s The java.util.concurrent Synchronizer Framework — o paper por trás do AQS
- Baeldung — java.util.concurrent overview
- CompletableFuture guide — Baeldung
Ferramentas
- JMH (Java Microbenchmark Harness) — benchmarking correto
- async-profiler — CPU, alloc, lock profiling
- JDK Mission Control — análise de JFR
- VisualVM — thread dumps, heap dumps, monitoring
- jstack, jcmd, jps — built-in tools
Veja também
- Concorrência e paralelismo (galho) — o galho canônico (16 notas em 3 fases)
- Java (MOC central)
- Java Fundamentals — fundamentos gerais (sintaxe, collections, streams, OOP)
- Spring Boot — concorrência em Spring (async, thread pools, virtual threads)
- System Design — patterns de concorrência em larga escala
- Redes e Protocolos — I/O-bound, connection pooling, timeouts
- Banco de dados — transações, isolation levels, connection pool
- Kafka — consumer concurrency, paralelismo por partição