Java vlákna | Ako vytvoriť vlákno v Jave
Existujú dva spôsoby vytvorenia vlákna:
- Rozšírením triedy Thread
- Implementáciou rozhrania Runnable.
Trieda vlákien:
Trieda Thread poskytuje konštruktory a metódy na vytváranie a vykonávanie operácií na vlákne. Trieda Thread rozširuje triedu Object a implementuje rozhranie Runnable.
Bežne používané konštruktory triedy Thread:
- vlákno()
- Vlákno (názov reťazca)
- Vlákno (spustiteľné r)
- Vlákno (Runnable r, Názov reťazca)
Bežne používané metódy triedy Thread:
Spustiteľné rozhranie:
Rozhranie Runnable by malo byť implementované akoukoľvek triedou, ktorej inštancie sú určené na spustenie vláknom. Spustiteľné rozhranie má iba jednu metódu s názvom run().
Spustenie vlákna:
The metóda start(). trieda Thread sa používa na spustenie novovytvoreného vlákna. Vykonáva tieto úlohy:
- Spustí sa nové vlákno (s novým zásobníkom hovorov).
- Vlákno sa presunie zo stavu New do stavu Runnable.
- Keď vlákno dostane príležitosť na spustenie, spustí sa jeho cieľová metóda run().
1) Príklad Java Thread rozšírením triedy Thread
Názov súboru: 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ýkon:
thread is running...
2) Príklad vlákna Java implementáciou rozhrania Runnable
Názov súboru: 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ýkon:
thread is running...
Ak nerozširujete triedu Thread, s objektom vašej triedy sa nebude zaobchádzať ako s objektom vlákna. Takže musíte explicitne vytvoriť objekt triedy Thread. Odovzdávame objekt vašej triedy, ktorý implementuje Runnable, aby sa vaša metóda run() triedy mohla spustiť.
3) Použitie triedy vlákien: Thread (Názov reťazca)
Triedu Thread môžeme priamo použiť na vytváranie nových vlákien pomocou konštruktorov definovaných vyššie.
Názov súboru: 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ýkon:
My first thread
4) Použitie triedy Thread: Thread (Runnable r, String name)
Dodržujte nasledujúci program.
Názov súboru: 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ýkon:
My new thread Now the thread is running ...