Threads em Java

Bom dia, alguém poderia me explicar Threads: não consegui entender!

Thread é a classe Java responsável por implementar processos concorrentes.
Você pode disparar várias Threas e elas vão processar alguma coisa concorrentemente, disputando tempo do processador.

public class Exemplo {

    public static void main(String[] args) throws Exception {
        Exemplo programa = new Exemplo();
        programa.executar();
    }

    public void executar() throws Exception {
        exemploSemThread();
        exemploComThread();
    }

    private void exemploSemThread() {
        System.out.println("Inicio execucao processos 1 e 2 sem threads");
        executaProcesso1();
        executaProcesso2();
        System.out.println("Fim execucao processos 1 e 2 sem threads");
    }

    private void exemploComThread() {
        System.out.println("Inicio execucao processos 1 e 2 com threads");
        Thread processo1 = new Thread(() -> executaProcesso1());
        Thread processo2 = new Thread(() -> executaProcesso2());
        processo1.start();
        processo2.start();
        System.out.println("Fim execucao processos 1 e 2 com threads");
    }

    private void executaProcesso1() {
        for (int i = 1; i <= 50; i++) {
            System.out.println("processo 1 esta fazendo algo: " + i);
            aguarda(100);
        }
    }

    private void executaProcesso2() {
        for (int i = 1; i <= 50; i++) {
            System.out.println("processo 2 esta fazendo algo: " + i);
            aguarda(100);
        }
    }

    private void aguarda(int milissegundos) {
        try {
            Thread.sleep(milissegundos);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
4 curtidas

Obrigado