blog/concurrency-in-java · 12 de abr. de 2022 · ↻ 16 de ago. de 2026 · 2 min de leitura
Concorrência em Java
Aprenda os fundamentos e conceitos avançados de multithreading e concorrência em Java.
Java oferece APIs maduras para executar trabalho concorrente e usar melhor os recursos do sistema.
Criando threads
Estender Thread ajuda a entender o modelo, mas aplicações reais normalmente se beneficiam de separar a tarefa da sua execução.
public class MyThread extends Thread {
public void run() {
System.out.println("Running in thread: " + Thread.currentThread().getName());
}
}
Usando Runnable
Runnable permite reutilizar a mesma tarefa com executores diferentes.
Runnable task = () -> System.out.println("Runnable Task");
new Thread(task).start();
Ciclo de vida e sincronização
Uma thread pode estar nova, executável, em execução, bloqueada ou terminada. Quando várias threads alteram o mesmo estado, proteja as seções críticas.
public synchronized void increment() {
count++;
}
Locks e executores
ExecutorService administra pools, limites e desligamento ordenado. Use Lock quando precisar de controle explícito e libere-o sempre em finally.
Resumo
Concorrência não é apenas executar mais tarefas: é controlar estado, falhas e recursos.