Tópicos Java | Como criar um thread em Java

Existem duas maneiras de criar um tópico:

  1. Estendendo a classe Thread
  2. Implementando a interface Runnable.

Classe de thread:

A classe Thread fornece construtores e métodos para criar e executar operações em um thread. A classe Thread estende a classe Object e implementa a interface Runnable.

Construtores da classe Thread comumente usados:

  • Fio()
  • Tópico (nome da string)
  • Thread (Executável r)
  • Thread (r executável, nome da string)

Métodos comumente usados ​​da classe Thread:

    execução nula pública(): é usado para executar ações para um thread. início vazio público(): inicia a execução do thread.JVM chama o método run() no thread. sono vazio público (longos milissegundos): Faz com que o thread em execução no momento entre em suspensão (cesse temporariamente a execução) pelo número especificado de milissegundos. junção nula pública(): espera que um thread morra. public void join (longos milissegundos): espera que um thread morra durante os milissegundos especificados. public int getPrioridade(): retorna a prioridade do thread. public int setPriority(int prioridade): altera a prioridade do thread. String pública getNome(): retorna o nome do thread. public void setName (Nome da string): muda o nome do tópico. Tópico público currentThread(): retorna a referência do thread atualmente em execução. público int getId(): retorna o id do thread. público Thread.State getState(): retorna o estado do thread. booleano público isAlive(): testa se o thread está ativo. rendimento nulo público(): faz com que o objeto thread atualmente em execução seja temporariamente pausado e permita que outros threads sejam executados. suspensão pública nula(): é usado para suspender o thread (obsoleto). currículo vazio público(): é usado para retomar o thread suspenso (descontinuado). parada pública nula(): é usado para interromper o thread (obsoleto). público booleano isDaemon(): testa se o thread é um thread daemon. público void setDaemon (booleano b): marca o thread como daemon ou thread do usuário. interrupção nula pública(): interrompe o thread. booleano público isInterrupted(): testa se o thread foi interrompido. público estático booleano interrompido(): testa se o thread atual foi interrompido.

Interface executável:

A interface Runnable deve ser implementada por qualquer classe cujas instâncias sejam executadas por um thread. A interface executável possui apenas um método chamado run().

    execução nula pública(): é usado para executar ações para um thread.

Iniciando um tópico:

O método start() da classe Thread é usada para iniciar um thread recém-criado. Ele executa as seguintes tarefas:

  • Um novo thread é iniciado (com nova pilha de chamadas).
  • O thread passa do estado Novo para o estado Executável.
  • Quando o thread tiver a chance de ser executado, seu método run() de destino será executado.

1) Exemplo de Java Thread estendendo a classe Thread

Nome do arquivo: Multi.java

 class Multi extends Thread{ public void run(){ System.out.println('thread is running...'); } public static void main(String args[]){ Multi t1=new Multi(); t1.start(); } }  

Saída:

 thread is running...  

2) Exemplo de thread Java implementando interface executável

Nome do arquivo: Multi3.java

 class Multi3 implements Runnable{ public void run(){ System.out.println('thread is running...'); } public static void main(String args[]){ Multi3 m1=new Multi3(); Thread t1 =new Thread(m1); // Using the constructor Thread(Runnable r) t1.start(); } }  

Saída:

 thread is running...  

Se você não estiver estendendo a classe Thread, seu objeto de classe não será tratado como um objeto thread. Então você precisa criar explicitamente o objeto da classe Thread. Estamos passando o objeto da sua classe que implementa Runnable para que o método run() da sua classe possa ser executado.

3) Usando a classe Thread: Thread(String Name)

Podemos usar diretamente a classe Thread para gerar novos threads usando os construtores definidos acima.

Nome do arquivo: MeuThread1.java

 public class MyThread1 { // Main method public static void main(String argvs[]) { // creating an object of the Thread class using the constructor Thread(String name) Thread t= new Thread('My first thread'); // the start() method moves the thread to the active state t.start(); // getting the thread name by invoking the getName() method String str = t.getName(); System.out.println(str); } }  

Saída:

 My first thread  

4) Usando a classe Thread: Thread (Runnable r, String name)

Observe o seguinte programa.

Nome do arquivo: MeuThread2.java

 public class MyThread2 implements Runnable { public void run() { System.out.println('Now the thread is running ...'); } // main method public static void main(String argvs[]) { // creating an object of the class MyThread2 Runnable r1 = new MyThread2(); // creating an object of the class Thread using Thread(Runnable r, String name) Thread th1 = new Thread(r1, 'My new thread'); // the start() method moves the thread to the active state th1.start(); // getting the thread name by invoking the getName() method String str = th1.getName(); System.out.println(str); } }  

Saída:

 My new thread Now the thread is running ...