Existují dva způsoby, jak vytvořit vlákno:
- Rozšířením třídy Thread
- 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:
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
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 ...