- Visão geral de Virtual Threads
- O que são Virtual Threads (projeto Loom)
- Platform Threads vs Virtual Threads - Blocking?
- Como funcionam as Platform Threads
- Como funcionam as Virtual Threads
- Regras e boas práticas
- Regra 1 - Criar Threads
- Regra 2 - Não usar CompletableFuture
- Regra 2 - Usar Virtual Threads
- Regra 3 - Não usar Thread Pool
- Regra 3 - Usar newThreadPerTaskExecutor
- Regra 4 - Não usar FixedThreadPool para concorrência
- Regra 4 - Usar Semaphore para concorrência
- Regra 5 - Usar ScopedValue
- Regra 6 - Usar ReentranceLock em vez de synchronized
- Regra 7 - Fazer Structured Concurrency
- Regra 8 - Testar Virtual Threads
- Spring Boot com Virtual Threads
- Spring Boot MVC com Virtual Threads
- Tarefas assíncronas no Spring Boot MVC
- RestController usando Virtual Threads
- Alteração de código legado
- Aplicando Virtual Threads em sistemas existentes
2 comentários
No JDK 24, o
synchronizedfoi corrigido para não causar mais pinning, então a regra 6 provavelmente também não será necessária por volta do próximo LTS.Como Scoped Value e Structured Concurrency ainda estão na fase de "prévia", parece que vai demorar um pouco até que as Virtual Threads cheguem ao uso comercial.