Existem duas maneiras de criar um tópico:
- Estendendo a classe Thread
- 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:
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
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 ...