Multithreading permite que um programa Java execute múltiplas threads simultaneamente, possibilitando paralelismo (uso de múltiplos núcleos de CPU) e responsividade (fazer trabalho sem bloqueio). Java tem suporte a threads de primeira classe — mas estado mutável compartilhado introduz complexidade (race conditions) que deve ser gerenciada cuidadosamente.
Criando threads
() -> System.out.println( + Thread.currentThread().getName());
(task);
t.start();
Executors.newFixedThreadPool();
executor.submit(task);
