logo

Fire Java | Cum se creează un fir în Java

Există două moduri de a crea un fir:

  1. Prin extinderea clasei Thread
  2. Prin implementarea interfeței Runnable.

Clasa de fir:

Clasa Thread oferă constructori și metode pentru a crea și efectua operațiuni pe un fir. Clasa Thread extinde clasa Object și implementează interfața Runnable.

Constructori folosiți în mod obișnuit din clasa Thread:

  • Fir()
  • Thread (nume șir)
  • Thread (Rulsabil r)
  • Thread (Runnable r, String name)

Metode utilizate în mod obișnuit din clasa Thread:

    public void run():este folosit pentru a efectua acțiuni pentru un fir.public void start():începe execuția firului de execuție.JVM apelează metoda run() pe fir.somn public nul (milisecunde lungi):Face ca firul de execuție curent să intre (încetează temporar execuția) pentru numărul specificat de milisecunde.public void join():așteaptă ca un fir să moară.public void join (milisecunde lungi):așteaptă ca un fir să moară timp de milisecundele specificate.public int getPriority():returnează prioritatea firului de execuție.public int setPriority(int priority):modifică prioritatea firului.public String getName():returnează numele firului.public void setName(Nume șir):schimbă numele firului de discuție.public Thread curent Thread():returnează referința firului de execuție curent.public int getId():returnează id-ul firului.public Thread.State getState():returnează starea firului.public boolean isAlive():testează dacă firul este viu.randament public void():face ca obiectul fir de execuție curent să se întrerupă temporar și să permită executarea altor fire.public void suspend():este folosit pentru a suspenda firul (deprised).CV public void():este folosit pentru a relua firul suspendat (deprivated).public void stop():este folosit pentru a opri firul (descărcat).public boolean isDaemon():testează dacă firul este un fir daemon.public void setDaemon(boolean b):marchează firul ca demon sau fir de utilizator.public void întrerupere ():întrerupe firul.public boolean isInterrupted():testează dacă firul a fost întrerupt.public static boolean întrerupt():testează dacă firul curent a fost întrerupt.

Interfață rulabilă:

Interfața Runnable ar trebui să fie implementată de orice clasă ale cărei instanțe sunt destinate să fie executate de un fir. Interfața rulabilă are o singură metodă numită run().

program de încapsulare
    public void run():este folosit pentru a efectua acțiuni pentru un fir.

Pornirea unui thread:

The metoda start(). din clasa Thread este folosită pentru a începe un fir nou creat. Îndeplinește următoarele sarcini:

  • Începe un nou thread (cu o nouă stivă de apeluri).
  • Firul se mută de la starea Nouă la starea de rulare.
  • Când firul de execuție are șansa de a se executa, se va rula metoda run() țintă.

1) Exemplu Java Thread prin extinderea clasei Thread

Nume de fișier: 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(); } } 

Ieșire:

 thread is running... 

2) Exemplu de fir Java prin implementarea interfeței Runnable

Nume de fișier: 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(); } } 

Ieșire:

 thread is running... 

Dacă nu extindeți clasa Thread, obiectul dvs. de clasă nu va fi tratat ca obiect thread. Deci, trebuie să creați în mod explicit obiectul clasei Thread. Trecem obiectul clasei dvs. care implementează Runnable, astfel încât metoda run() a clasei dvs. să se poată executa.

tabel complet de adevăr al sumătorului

3) Utilizarea clasei Thread: Thread (Nume șir)

Putem folosi direct clasa Thread pentru a genera fire noi folosind constructorii definiți mai sus.

Nume de fișier: 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); } } 

Ieșire:

obiect al java
 My first thread 

4) Utilizarea clasei Thread: Thread (Runnable r, String name)

Respectați următorul program.

Nume de fișier: 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); } } 

Ieșire:

 My new thread Now the thread is running ...