logo

Java szálak | Hogyan készítsünk szálat Java-ban

Kétféleképpen hozhat létre szálat:

  1. A Thread osztály kiterjesztésével
  2. A Runnable interfész megvalósításával.

Szál osztály:

A szál osztály konstruktorokat és metódusokat biztosít a szálon végzett műveletek létrehozásához és végrehajtásához. A szál osztály kiterjeszti az objektumosztályt, és futtatható felületet valósít meg.

A Thread osztály leggyakrabban használt konstruktorai:

  • Cérna()
  • Szál (karakterlánc neve)
  • Szál (futtatható r)
  • Szál (futtatható r, karakterlánc neve)

A Thread osztály leggyakrabban használt metódusai:

    public void run():egy szál művelet végrehajtására szolgál.public void start():elindítja a szál végrehajtását.JVM meghívja a run() metódust a szálon.nyilvános üres alvás (hosszú milliszekundum):Az éppen futó szálat alvó állapotba helyezi (átmenetileg leállítja a végrehajtást) a megadott számú ezredmásodpercig.public void join():várja, hogy egy szál elhaljon.nyilvános érvénytelen csatlakozás (hosszú milliszekundum):várja, hogy egy szál elhaljon a megadott ezredmásodpercig.public int getPriority():visszaadja a szál prioritását.public int setPriority(int priority):megváltoztatja a szál prioritását.public String getName():visszaadja a szál nevét.public void setName(karakterlánc neve):megváltoztatja a szál nevét.nyilvános szál currentThread():az éppen futó szál hivatkozását adja vissza.public int getId():visszaadja a szál azonosítóját.public Thread.State getState():visszaadja a szál állapotát.publikus logikai isAlive():teszteli, hogy a szál él-e.public void hozam():hatására az éppen futó szál objektum átmenetileg szünetel, és lehetővé teszi más szálak végrehajtását.nyilvános érvénytelen felfüggesztés():a szál felfüggesztésére szolgál (elvonás).nyilvános érvénytelen önéletrajz():a felfüggesztett szál (elhasznált) folytatására szolgál.nyilvános üres stop():a szál leállítására szolgál (elvonás).publikus logikai isDaemon():teszteli, hogy a szál démonszál-e.public void setDaemon(boolean b):a szálat démonként vagy felhasználói szálként jelöli meg.public void interrupt():megszakítja a fonalat.public logikai isInterrupted():teszteli, hogy a szál megszakadt-e.nyilvános statikus logikai érték megszakítva():teszteli, hogy az aktuális szál megszakadt-e.

Futtatható felület:

A Runnable interfészt minden olyan osztálynak meg kell valósítania, amelynek példányait egy szál hajtja végre. A futtatható felületnek csak egy run() nevű metódusa van.

jquery ezt a kattintást
    public void run():egy szál művelet végrehajtására szolgál.

Téma indítása:

A start() metódus of Thread osztály egy újonnan létrehozott szál indítására szolgál. A következő feladatokat látja el:

  • Új szál indul (új callstack-el).
  • A szál Új állapotból Futható állapotba kerül.
  • Amikor a szál lehetőséget kap a végrehajtásra, a cél run() metódus futni fog.

1) Java Thread példa a Thread osztály kiterjesztésével

Fájl név: 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(); } } 

Kimenet:

 thread is running... 

2) Java Thread példa futtatható felület megvalósításával

Fájl név: 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(); } } 

Kimenet:

 thread is running... 

Ha nem bővíti ki a Thread osztályt, akkor az osztályobjektum nem lesz szálobjektumként kezelve. Tehát kifejezetten létre kell hoznia a Thread osztály objektumot. Átadjuk az osztályodnak azt az objektumát, amely megvalósítja a Runnable parancsot, hogy az osztályod run() metódusa végre lehessen hajtani.

3) A szálosztály használata: Szál(karakterlánc neve)

A Thread osztályt közvetlenül használhatjuk új szálak létrehozására a fent definiált konstruktorok segítségével.

string a java

Fájl név: 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); } } 

Kimenet:

 My first thread 

4) A szálosztály használata: Szál (futtatható r, karakterlánc neve)

Vegye figyelembe a következő programot.

Fájl név: MyThread2.java

parancs arp-a
 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); } } 

Kimenet:

 My new thread Now the thread is running ...