logo

Java vlákna | Ako vytvoriť vlákno v Jave

Existujú dva spôsoby vytvorenia vlákna:

  1. Rozšírením triedy Thread
  2. 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:

    public void run():sa používa na vykonanie akcie pre vlákno.public void start():spustí vykonávanie vlákna.JVM volá metódu run() na vlákno.verejný nečinný spánok (dlhé milisekundy):Spôsobí, že aktuálne spustené vlákno uspí (dočasne zastaví vykonávanie) na určený počet milisekúnd.public void join():čaká na odumretie vlákna.verejné neplatné pripojenie (dlhé milisekundy):čaká, kým vlákno zanikne počas zadaných milisekúnd.public int getPriority():vráti prioritu vlákna.public int setPriority (int priority):zmení prioritu vlákna.public String getName():vráti názov vlákna.public void setName(názov reťazca):zmení názov vlákna.public Thread currentThread():vráti referenciu aktuálne vykonávaného vlákna.public int getId():vráti ID vlákna.public Thread.State getState():vráti stav vlákna.verejný boolean isAlive():testuje, či je vlákno živé.verejný neplatný výnos():spôsobí, že sa aktuálne spustený objekt vlákna dočasne pozastaví a umožní spustenie iných vlákien.public void suspend():sa používa na pozastavenie vlákna (zastarané).verejný neplatný životopis():sa používa na obnovenie pozastaveného vlákna (zastarané).public void stop():sa používa na zastavenie vlákna (zastarané).verejný boolovský isDaemon():testuje, či je vlákno vlákno démona.public void setDaemon(boolean b):označí vlákno ako démon alebo užívateľské vlákno.public void interrupt():preruší vlákno.public boolean isInterrupted():testuje, či nebolo vlákno prerušené.public static boolean interrupted():testuje, či bolo aktuálne vlákno prerušené.

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
    public void run():sa používa na vykonanie akcie pre vlákno.

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 ...