logo

Java vlákna | Jak vytvořit vlákno v Javě

Existují dva způsoby, jak vytvořit vlákno:

  1. Rozšířením třídy Thread
  2. Implementací rozhraní Runnable.

Třída vláken:

Třída Thread poskytuje konstruktory a metody pro vytváření a provádění operací na vlákně. Třída Thread rozšiřuje třídu Object a implementuje rozhraní Runnable.

Běžně používané konstruktory třídy Thread:

  • Vlákno()
  • Vlákno (název řetězce)
  • Vlákno (spustitelné r)
  • Vlákno (Runnable r, Název řetězce)

Běžně používané metody třídy Thread:

    public void run():se používá k provedení akce pro vlákno.public void start():spustí provádění vlákna.JVM volá metodu run() na vláknu.veřejný prázdný spánek (dlouhé milisekundy):Způsobí, že aktuálně běžící vlákno uspí (dočasně zastaví provádění) na zadaný počet milisekund.public void join():čeká, až vlákno zemře.veřejné neplatné připojení (dlouhé milisekundy):čeká, až vlákno zemře po zadané milisekundy.public int getPriority():vrátí prioritu vlákna.public int setPriority (int priority):změní prioritu vlákna.veřejný řetězec getName():vrátí název vlákna.public void setName(název řetězce):změní název vlákna.public Thread currentThread():vrátí odkaz na aktuálně spuštěné vlákno.public int getId():vrátí id vlákna.public Thread.State getState():vrací stav vlákna.public boolean isAlive():testuje, zda je vlákno živé.veřejný neplatný výnos():způsobí, že se aktuálně spouštěný objekt vlákna dočasně pozastaví a umožní spuštění jiných vláken.public void suspend():se používá k pozastavení vlákna (zastaralé).veřejný neplatný životopis():se používá k obnovení pozastaveného vlákna (vyřazeno).public void stop():se používá k zastavení vlákna (vyřazeno).public boolean isDaemon():testuje, zda je vlákno vlákno démona.public void setDaemon(boolean b):označí vlákno jako démon nebo uživatelské vlákno.public void interrupt():přeruší vlákno.public boolean isInterrupted():testuje, zda nebylo vlákno přerušeno.public static boolean interrupted():testuje, zda bylo aktuální vlákno přerušeno.

Spustitelné rozhraní:

Rozhraní Runnable by mělo být implementováno jakoukoli třídou, jejíž instance mají být spouštěny vláknem. Spustitelné rozhraní má pouze jednu metodu s názvem run().

c++ převést int na řetězec
    public void run():se používá k provedení akce pro vlákno.

Zahájení vlákna:

The metoda start(). Třída Thread se používá ke spuštění nově vytvořeného vlákna. Provádí následující úkoly:

  • Spustí se nové vlákno (s novým zásobníkem volání).
  • Vlákno se přesune ze stavu New do stavu Runnable.
  • Když vlákno dostane příležitost ke spuštění, spustí se jeho cílová metoda run().

1) Příklad Java Thread rozšířením třídy Thread

Název souboru: 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(); } } 

Výstup:

 thread is running... 

2) Příklad vlákna Java implementací rozhraní Runnable

Název souboru: 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(); } } 

Výstup:

srovnatelný řetězec
 thread is running... 

Pokud nerozšiřujete třídu Thread, váš objekt třídy nebude považován za objekt vlákna. Takže musíte explicitně vytvořit objekt třídy Thread. Předáváme objekt vaší třídy, který implementuje Runnable, aby se vaše metoda run() třídy mohla spustit.

3) Použití třídy Thread: Thread(String Name)

Třídu Thread můžeme přímo použít k vytvoření nových vláken pomocí konstruktorů definovaných výše.

Název souboru: 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); } } 

Výstup:

 My first thread 

4) Použití třídy Thread: Thread (Runnable r, String name)

Dodržujte následující program.

Název souboru: 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); } } 

Výstup:

tring to int
 My new thread Now the thread is running ...