logo

Trådkonsept i Java

Før du introduserer trådkonsept , kunne vi ikke kjøre mer enn én oppgave parallelt. Det var en ulempe, og for å fjerne den ulempen, Trådkonsept Ble introdusert.

EN Tråd er en veldig lett prosess, eller vi kan si den minste delen av prosessen som gjør at et program kan operere mer effektivt ved å kjøre flere oppgaver samtidig.

java regex for

For å utføre kompliserte oppgaver i bakgrunnen brukte vi Trådkonsept i Java . Alle oppgavene utføres uten å påvirke hovedprogrammet. I et program eller en prosess har alle trådene sin egen separate bane for utførelse, så hver tråd i en prosess er uavhengig.

Trådkonsept i Java

En annen fordel med å bruke tråd er at hvis en tråd får et unntak eller en feil når den kjøres, påvirker det ikke utførelsen av de andre trådene. Alle trådene deler et felles minne og har sin egen stack, lokale variabler og programteller. Når flere tråder kjøres parallelt samtidig, kalles denne prosessen Multithreading .

På en enkel måte er en tråd en:

  • Funksjon som gjør at vi kan utføre flere aktiviteter innenfor en enkelt prosess.
  • Lett prosess.
  • Serie av utførte uttalelser.
  • Nestet sekvens av metodekall.

Trådmodell

Akkurat som en prosess, eksisterer en tråd i flere stater. Disse statene er som følger:

Trådkonsept i Java

1) Ny (klar til å kjøre)

En tråd er inne Ny når den får CPU-tid.

2) Løping

En tråd er inne a Løping oppgi når den er under utførelse.

3) Suspendert

En tråd er i Suspendert angi når den er midlertidig inaktiv eller under utførelse.

4) Blokkert

En tråd er i Blokkert oppgi når den venter på ressurser.

5) Avsluttet

En tråd kommer i denne tilstanden når den til enhver tid stopper utførelsen umiddelbart.

Oppretter tråd

En tråd opprettes enten ved å 'opprette eller implementere' Kjørbart grensesnitt eller ved å forlenge Trådklasse . Dette er de eneste to måtene vi kan lage en tråd på.

hva er java hashmap

La oss dykke ned i detaljer om begge disse måtene å lage en tråd på:

Trådklasse

EN Trådklasse har flere metoder og konstruktører som lar oss utføre ulike operasjoner på en tråd. Trådklassen utvider Gjenstand klasse. De Gjenstand klasse implementerer Kjørbar grensesnitt. Trådklassen har følgende konstruktører som brukes til å utføre ulike operasjoner.

    Tråd() Tråd (kjørbar, strengnavn) Tråd (Kjørbart mål) Tråd (trådgruppegruppe, kjørbart mål, strengnavn) Tråd (Trådgruppegruppe, kjørbart mål) Tråd (trådgruppegruppe, strengnavn) Tråd (trådgruppegruppe, kjørbart mål, strengnavn, lang stabelstørrelse)

Kjørbart grensesnitt (run() metode)

Runnable-grensesnittet kreves for å være implementert av den klassen hvis forekomster er ment å bli utført av en tråd. Det kjørbare grensesnittet gir oss løpe() metode for å utføre en handling for tråden.

start()-metoden

Metoden brukes til å starte en tråd som vi nylig har opprettet. Den starter en ny tråd med en ny callstack. Etter å ha utført start() metoden endrer tråden tilstanden fra New til Runnable. Den utfører run() metode når tråden får riktig tid til å kjøre den.

La oss ta et eksempel for å forstå hvordan vi kan lage en Java tråd ved å utvide trådklassen:

Trådeksempel1.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(); } } 

Produksjon:

Trådkonsept i Java

Opprette tråd ved å implementere det kjørbare grensesnittet

I Java kan vi også lage en tråd ved å implementere det kjørbare grensesnittet. Det kjørbare grensesnittet gir oss både run()-metoden og start()-metoden.

jlist

La oss ta et eksempel for å forstå hvordan vi kan opprette, starte og kjøre tråden ved å bruke det kjørbare grensesnittet.

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'); } } 

Produksjon:

Trådkonsept i Java

I eksemplet ovenfor utfører vi Multithreading ved å implementere det kjørbare grensesnittet. For å lære mer om Multithreading, Klikk her .