~/daniel
Voltar ao blog

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.

$ ls ../related

Outros artigos que podem interessar você