Comece um novo tópico em Java

Mohammad Irfan 12 outubro 2023
  1. Crie um thread estendendo a classe Thread em Java
  2. Crie thread implementando a interface Runnable em Java
  3. Criar thread pelo objeto Thread em Java
  4. Crie thread usando a classe anônima em Java
  5. Crie thread usando a função lambda em Java
  6. Crie thread usando a classe Executors em Java
Comece um novo tópico em Java

Este tutorial apresenta como iniciar um novo encadeamento em Java.

Um thread é a menor unidade de um programa / processo que é executado em tempo real e maximiza a utilização da CPU.

Java suporta o conceito de thread e permite criar um thread para criar aplicativos multithreading. Neste artigo, aprenderemos a criar um novo encadeamento em Java.

Para criar um novo thread em Java, podemos usar a classe Thread ou a interface Runnable. Vamos ver alguns exemplos.

Crie um thread estendendo a classe Thread em Java

Em Java, Thread é uma classe usada para criar um novo thread e fornece vários métodos utilitários. Neste exemplo, usamos a classe Thread estendendo-a e começando com o método start(). O método start() inicia um novo thread. O método run() é usado para executar a tarefa pelo thread recém-criado. O thread executa automaticamente este método. Veja o exemplo abaixo.

public class SimpleTesting extends Thread {
  public static void main(String[] args) {
    SimpleTesting st = new SimpleTesting();
    st.start();
  }
  public void run() {
    try {
      System.out.println("New Thread Start");
      Thread.sleep(1000);
      System.out.println("Thread sleep for 1 second.");
    } catch (InterruptedException e) {
      System.out.println(e);
    }
  }
}

Resultado:

New Thread Start
Thread sleep for 1 second.

Crie thread implementando a interface Runnable em Java

A interface Runnable pode ser usada para criar um novo encadeamento, mas não fornece os recursos fornecidos pela classe Thread. Essa interface fornece um método run() que pode ser usado para executar tarefas. Veja o exemplo abaixo.

public class SimpleTesting implements Runnable {
  public static void main(String[] args) {
    SimpleTesting st = new SimpleTesting();
    Thread one = new Thread(st);
    one.start();
  }
  public void run() {
    try {
      System.out.println("New Thread Start");
      Thread.sleep(1000);
      System.out.println("Thread sleep for 1 second.");
    } catch (InterruptedException e) {
      System.out.println(e);
    }
  }
}

Resultado:

New Thread Start
Thread sleep for 1 second.

Criar thread pelo objeto Thread em Java

Podemos criar diretamente um novo encadeamento usando o objeto Thread e o método start(), mas este encadeamento não executa nenhuma tarefa, pois não fornecemos a implementação do método run(). Podemos obter informações de thread usando seus métodos embutidos como getState(), getName(), etc. Veja o exemplo abaixo.

public class SimpleTesting {
  public static void main(String[] args) {
    Thread one = new Thread("New Thread");
    System.out.println("Thread state : " + one.getState());
    one.start();
    System.out.println("Thread state : " + one.getState());
    System.out.println("Thread Name : " + one.getName());
    System.out.println("Thread state : " + one.getState());
  }
}

Resultado:

Thread state : NEW Thread state : RUNNABLE Thread Name : New Thread Thread state : TERMINATED

Crie thread usando a classe anônima em Java

Esta não é uma nova maneira de criar um novo tópico; apenas usamos uma classe anônima usando a classe Runnable, passamos para o construtor Thread e iniciamos o thread. Veja o exemplo abaixo.

public class SimpleTesting {
  public static void main(String[] args) {
    Thread t1 = new Thread(new Runnable() {
      public void run() {
        try {
          System.out.println("New Thread Start");
          Thread.sleep(1000);
          System.out.println("Thread sleep for 1 second.");
        } catch (InterruptedException e) {
          System.out.println(e);
        }
      }
    });
    t1.start();
  }
}

Resultado:

New Thread Start
Thread sleep for 1 second.

Crie thread usando a função lambda em Java

O recurso de função Lambda foi adicionado à versão Java 8 que pode ser usado para substituir a classe anônima em Java. Aqui, usamos a função lambda para criar um novo encadeamento. Esta é uma forma compacta e curta de criar um tópico. Veja o exemplo abaixo.

public class SimpleTesting {
  public static void main(String[] args) throws InterruptedException {
    new Thread(() -> {
      try {
        System.out.println("New Thread Start");
        Thread.sleep(1000);
        System.out.println("Thread sleep for 1 second.");
      } catch (InterruptedException e) {
        System.out.println(e);
      }
    }) {
      { start(); }
    }.join();
  }
}

Resultado:

New Thread Start
Thread sleep for 1 second.

Crie thread usando a classe Executors em Java

O Executors é uma classe que pertence ao pacote de simultaneidade Java e pode ser usado para criar aplicações multithreading. Portanto, podemos usá-lo para criar um novo thread também. O método newSingleThreadExecutor() inicializa um novo encadeamento e é então executado pela função submit(). Veja o exemplo abaixo.

import java.util.concurrent.Executors;
public class SimpleTesting {
  public static void main(String[] args) throws InterruptedException {
    Executors.newSingleThreadExecutor().submit(() -> {
      try {
        System.out.println("New Thread Start");
        Thread.sleep(1000);
        System.out.println("Thread sleep for 1 second.");
      } catch (InterruptedException e) {
        System.out.println(e);
      }
    });
  }
}

Resultado:

New Thread Start
Thread sleep for 1 second.

Artigo relacionado - Java Threading