logo

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().

python imprime com 2 casas decimais
    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:

ubuntu qual comando
 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

variável java variável
 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 ...