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

Threads na JVM

Migrado para galho próprio

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

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

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

Artigos

Ferramentas


Veja também