logo

Discussioni Java | Come creare un thread in Java

Esistono due modi per creare un thread:

  1. Estendendo la classe Thread
  2. Implementando l'interfaccia Runnable.

Classe del thread:

La classe Thread fornisce costruttori e metodi per creare ed eseguire operazioni su un thread. La classe Thread estende la classe Object e implementa l'interfaccia Runnable.

Costruttori comunemente usati della classe Thread:

  • Filo()
  • Discussione (nome stringa)
  • Discussione (eseguibile r)
  • Thread(Eseguibile r,nome stringa)

Metodi comunemente usati della classe Thread:

    public void run():viene utilizzato per eseguire un'azione per un thread.public void start():avvia l'esecuzione del thread.JVM chiama il metodo run() sul thread.sonno vuoto pubblico (milisecondi lunghi):Causa la sospensione (interruzione temporanea dell'esecuzione) del thread attualmente in esecuzione per il numero specificato di millisecondi.public void join():aspetta che un thread muoia.public void join (milisecondi lunghi):attende che un thread muoia per i millisecondi specificati.public int getPriority():restituisce la priorità del thread.public int setPriority(int priorità):cambia la priorità del thread.stringa pubblica getName():restituisce il nome del thread.public void setName(nome stringa):cambia il nome del thread.Discussione pubblica currentThread():restituisce il riferimento del thread attualmente in esecuzione.public int getId():restituisce l'id del thread.public Thread.State getState():restituisce lo stato del thread.booleano pubblico isAlive():verifica se il thread è vivo.rendimento pubblico vuoto():fa sì che l'oggetto thread attualmente in esecuzione venga temporaneamente sospeso e consenta l'esecuzione di altri thread.public void suspend():viene utilizzato per sospendere il thread (deprivato).curriculum pubblico vuoto():viene utilizzato per riprendere il thread sospeso (deprecato).public void stop():viene utilizzato per interrompere il thread (deprivato).booleano pubblico isDaemon():verifica se il thread è un thread demone.public void setDaemon(booleano b):contrassegna il thread come demone o thread utente.public void interrupt():interrompe il filo.booleano pubblico isInterrupted():verifica se il thread è stato interrotto.booleano statico pubblico interrotto():verifica se il thread corrente è stato interrotto.

Interfaccia eseguibile:

L'interfaccia Runnable dovrebbe essere implementata da qualsiasi classe le cui istanze devono essere eseguite da un thread. L'interfaccia eseguibile ha un solo metodo denominato run().

Java che ordina un elenco
    public void run():viene utilizzato per eseguire un'azione per un thread.

Inizio di una discussione:

IL metodo start() della classe Thread viene utilizzata per avviare un thread appena creato. Svolge i seguenti compiti:

  • Inizia un nuovo thread (con il nuovo stack di chiamate).
  • Il thread passa dallo stato Nuovo allo stato Eseguibile.
  • Quando il thread avrà la possibilità di essere eseguito, verrà eseguito il suo metodo run() di destinazione.

1) Esempio di thread Java estendendo la classe Thread

Nome del file: 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(); } } 

Produzione:

 thread is running... 

2) Esempio di thread Java implementando l'interfaccia Runnable

Nome del file: Multi3.java

tabella di verità completa del sommatore
 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(); } } 

Produzione:

 thread is running... 

Se non stai estendendo la classe Thread, l'oggetto della tua classe non verrà trattato come un oggetto thread. Quindi è necessario creare esplicitamente l'oggetto della classe Thread. Stiamo passando l'oggetto della tua classe che implementa Runnable in modo che il metodo run() della tua classe possa essere eseguito.

3) Utilizzo della classe Thread: Thread(Nome stringa)

Possiamo utilizzare direttamente la classe Thread per generare nuovi thread utilizzando i costruttori definiti sopra.

Nome del file: MyThread1.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); } } 

Produzione:

 My first thread 

4) Utilizzo della classe Thread: Thread(Eseguibile r, Nome stringa)

Osservare il seguente programma.

la migliore auto del mondo

Nome del file: MyThread2.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); } } 

Produzione:

 My new thread Now the thread is running ...