logo

Szál koncepció Java nyelven

Mielőtt bemutatná a szál koncepció , nem tudtunk egynél több feladatot párhuzamosan futtatni. Ez egy hátrány volt, és hogy ezt a hátrányt megszüntesse, Szál koncepció bemutatták.

A cérna egy nagyon kis súlyozású folyamat, vagy mondhatjuk a folyamat legkisebb része, amely lehetővé teszi a program hatékonyabb működését több feladat egyidejű futtatásával.

meghatározatlan lejtő

Ahhoz, hogy bonyolult feladatokat végezhessünk a háttérben, a Szál koncepció Java nyelven . Az összes feladat végrehajtása a főprogram befolyásolása nélkül történik. Egy programban vagy folyamatban minden szálnak megvan a maga külön útvonala a végrehajtáshoz, így a folyamat minden szála független.

Szál koncepció Java nyelven

A használat másik előnye cérna az, hogy ha egy szál kivételt vagy hibát kap a végrehajtása során, az nincs hatással a többi szál végrehajtására. Az összes szál közös memóriával rendelkezik, és saját veremük, helyi változói és programszámlálója van. Ha egyszerre több szálat hajtanak végre párhuzamosan, ezt a folyamatot úgy hívják Többszálú .

Egyszerű módon a szál a következő:

  • Funkció, amelyen keresztül több tevékenységet végezhetünk egyetlen folyamaton belül.
  • Könnyű eljárás.
  • Végrehajtott utasítások sorozata.
  • Metódushívások beágyazott sorozata.

Menetmodell

Csakúgy, mint egy folyamat, egy szál több állapotban is létezik. Ezek az állapotok a következők:

Szál koncepció Java nyelven

1) Új (futásra kész)

Benne van egy szál Új amikor megkapja a CPU-időt.

2) Futás

Benne van egy szál a Futás adja meg, hogy mikor van végrehajtás alatt.

3) Felfüggesztve

Egy szál van a Felfüggesztett azt az állapotot, amikor átmenetileg inaktív vagy végrehajtás alatt van.

4) Blokkolt

szelén alapjai

Egy szál van a Zárolt jelezze, hogy mikor vár forrásokra.

5) Megszűnt

Egy szál akkor kerül ebbe az állapotba, amikor egy adott időpontban azonnal leállítja a végrehajtását.

Szál létrehozása

A szál a 'létrehozásával vagy megvalósításával' jön létre Futtatható felület vagy kiterjesztésével a Szál osztály . Csak ezen a két módon hozhatunk létre szálat.

Nézzük meg a szál létrehozásának mindkét módját:

Szál osztály

A Szál osztály számos módszerrel és konstruktorral rendelkezik, amelyek lehetővé teszik, hogy különféle műveleteket hajtsunk végre egy szálon. A Thread osztály kiterjeszti a Tárgy osztály. A Tárgy osztály valósítja meg a Futható felület. A szálosztály a következő konstruktorokkal rendelkezik, amelyek különféle műveletek végrehajtására szolgálnak.

    Cérna() Szál (futtatható, karakterlánc neve) Szál (futtatható cél) Szál (ThreadGroup csoport, Futtatható cél, Karakterlánc neve) Szál (ThreadGroup csoport, Futható cél) Szál (Szálcsoport csoport, Karakterlánc neve) Szál (ThreadGroup csoport, Futtatható cél, Karakterlánc neve, hosszú veremméret)

Futtatható felület (run() metódus)

A Runnable interfészt annak az osztálynak kell megvalósítania, amelynek példányait egy szál hajtja végre. A futtatható felület megadja nekünk a fuss() metódus a szál műveletének végrehajtására.

start() metódus

A módszer egy újonnan létrehozott szál indítására szolgál. Új szálat indít egy új callstack-el. Végrehajtása után a Rajt() módszerrel a szál állapotát Újról Futhatóra változtatja. Végrehajtja a run() metódus amikor a szál megkapja a megfelelő időpontot a végrehajtásához.

adatszerkezetek java-ban

Vegyünk egy példát, hogy megértsük, hogyan hozhatunk létre a Jáva szál a szál osztály kiterjesztésével:

ThreadExample1.java

 // Implementing runnable interface by extending Thread class public class ThreadExample1 extends Thread { // run() method to perform action for thread. public void run() { int a= 10; int b=12; int result = a+b; System.out.println('Thread started running..'); System.out.println('Sum of two numbers is: '+ result); } public static void main( String args[] ) { // Creating instance of the class extend Thread class ThreadExample1 t1 = new ThreadExample1(); //calling start method to execute the run() method of the Thread class t1.start(); } } 

Kimenet:

Szál koncepció Java nyelven

Szál létrehozása a futtatható felület megvalósításával

Java-ban a futtatható felület megvalósításával is létrehozhatunk szálat. A futtatható felület biztosítja számunkra a run() és a start() metódust is.

Vegyünk egy példát, hogy megértsük, hogyan hozhatjuk létre, indíthatjuk el és futtathatjuk a szálat a futtatható felület segítségével.

ThreadExample2.java

 class NewThread implements Runnable { String name; Thread thread; NewThread (String name){ this.name = name; thread = new Thread(this, name); System.out.println( 'A New thread: ' + thread+ 'is created
' ); thread.start(); } public void run() { try { for(int j = 5; j > 0; j--) { System.out.println(name + ': ' + j); Thread.sleep(1000); } }catch (InterruptedException e) { System.out.println(name + ' thread Interrupted'); } System.out.println(name + ' thread exiting.'); } } class ThreadExample2 { public static void main(String args[]) { new NewThread('1st'); new NewThread('2nd'); new NewThread('3rd'); try { Thread.sleep(8000); } catch (InterruptedException excetion) { System.out.println('Inturruption occurs in Main Thread'); } System.out.println('We are exiting from Main Thread'); } } 

Kimenet:

Szál koncepció Java nyelven

A fenti példában a Multithreading-et a futtatható felület megvalósításával hajtjuk végre. Ha többet szeretne megtudni a Multithreadingről, kattints ide .