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().
rok na štvrťroky
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ť.
akú veľkosť mám monitor
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:
pričom slučka java
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 ...