Multithreading in Java | Forklart

Multithreading in Java | Forklart
Java gir en funksjon som heter multithreading som tillater samtidig utførelse av flere tråder, og som et resultat forbedrer den CPU -utnyttelse, ressursdeling, brukerrespons og så videre. Multithreading brukes ofte fordi tråder bruker det delte minneområdet, og det er derfor ikke behov for å tildele separat minne til noen tråd. Derfor sparer det minne, og utfører rask utførelse. De vanligste tilfellene i den virkelige verdenen av multithreading involverer dataspill, animasjoner og så videre.

Denne oppskrivningen presenterer en komplett guide for multithreading i Java og for en dyp forståelse, vil den dekke følgende konsepter:

  • Hva er multithreading i Java
  • Hvorfor multithreading er viktig i Java
  • Livssyklus av tråder i Java
  • Java-innebygde metoder for multithreading
  • Praktisk implementering av multithreading i Java

Så la oss komme i gang!

Hva er multithreading

Det er en prosess som lar oss utføre minst to tråder samtidig, og det blir også referert til som samtidighet i Java. Java multithreading maksimerer CPU -utnyttelsen når den kjører hver tråd parallelly. Dessuten sparer det minnet som ved multithreading er det ikke nødvendig å tildele separat minne til flere tråder.

Hvorfor multithreading er viktig i Java

Multithreading gir et bredt spekter av funksjoner, og betydningen av Java multithreading kan evalueres fra de nedenfor-listede funksjonene:

  • Java multithreading tillater ressursdeling, og i en prosess kan flere ressurser deles som kode, minne, filer, data og så videre.
  • Tråder er uavhengige, derfor vil unntak som skjedde i en tråd ikke påvirke andres ytelse.
  • Multithreading i Java gjør det mulig for et program å kjøre selv om et bestemt stykke av programmet er blokkert av en eller annen grunn eller utføre en lang oppgave/drift.
  • Det sparer tid da flere oppgaver/operasjoner kan utføres samtidig.

Bare noen få funksjoner er oppført her, men det er mange flere som skalerbarhet, kostnadseffektivitet osv. som viser dominansen av multithreading.

Livssyklus av tråder i Java

Per nå har vi lært hva som er multithreading, og hvorfor er det så viktig i Java? Nå skal vi lære om trådens livssyklus som består av forskjellige stater som oppført nedenfor:

Ny: I denne tilstanden initieres/opprettet en tråd ved hjelp av "Tråd" klasse eller “Runnbar” grensesnitt. Den holder seg i denne tilstanden til et program starter/initierer en tråd.

Løpbar: Innenfor denne tilstanden vil trådens forekomst bli påkalt ved hjelp av en innebygd metodestart () og tråden holder seg i den løpbare tilstanden til en oppgave utfører.

Løping: I denne tilstanden starter en tråd utførelsen.

Venter: Innenfor denne fasen går tråden til en midlertidig inaktiv tilstand som betyr at enten en tråd sover, venter eller i en blokkert tilstand.

Avsluttet/død: En tråd kommer inn i denne tilstanden når et unntak oppstår, eller hvis tråden fullfører utførelsen/behandlingen.

Java-innebygde metoder for multithreading

Det er en liste over Java forhåndsdefinerte metoder som kan brukes i trådene for å oppnå forskjellige funksjoner. Noen ofte brukte metoder er listet opp i den undergitte tabellen:

Metodens navn Beskrivelse
start() Det brukes til å starte trådens utførelse.
løpe() utfører spesifikk handling for en tråd.
getName () Returnerer trådens navn.
utbytte () Stopper gjeldende tråd og lar andre utføre.
setpriority (int newpriority) Angir trådens prioritet.
GetPriority () Returnerer trådens prioritet.
Søvn (int millisekunder) Sover tråden i en spesifisert tidsperiode.
Getid () Returnerer trådens ID.

Praktisk implementering av multithreading i Java

Nå er det på tide å forstå konseptet Java multithreading ved hjelp av praktisk implementering. Så vi kommer til å vurdere et eksempel der vi vil utføre multithreading og vil bruke noen av de ovennevnte innebygde metodene.

Eksempel

I dette eksemplet vil vi utføre multithreading ved å implementere det løpbare grensesnittet:

public class multithreadingExample implementerer løpbar
@Overstyring
public void run ()

public static void main (String [] args)
Tråd trådObj1 = ny tråd ("Tråd1");
Tråd trådObj2 = ny tråd ("Tråd2");
threadobj1.start();
threadobj2.start();
System.ute.println ("Navn på første tråd:" + threadobj1.getName ());
System.ute.println ("Navn på andre tråd:" + threadobj2.getName ());

I ovennevnte kodebit implementerer vi Java Runnable -grensesnittet, og innenfor klassen bruker vi @Overstyring merknad som viser at “MultithreadingExample” overstyrer løpe() Metode for løpbart grensesnitt. Etterpå lager vi flere tråder og starter trådens utførelse ved hjelp av start() metode. Endelig får vi trådens navn ved hjelp av getName () Metode og skriv dem ut som vist i utdraget nedenfor:

Dette verifiserer arbeidet med flertråd i Java.

I eksemplet over utfører vi multithreading ved å implementere Løpbar grensesnitt. Imidlertid kan vi også utføre multithreading ved å utvide en forhåndsdefinert Tråd Klasse som vist i følgende utdrag:

offentlig klasse multithreadingExample utvider tråden

Ved å utvide trådklassen kan du benytte funksjonalitetene til forhåndsdefinerte Java -metoder.

Konklusjon

Multithreading tillater samtidig utførelse av to eller flere tråder som maksimerer CPU -utnyttelsen, sparer tid, minne osv. Multithreading kan utføres ved å utvide eller implementere trådklassen eller løpbart grensesnitt. Ulike innebygde metoder for trådklasse og løpbart grensesnitt kan brukes i multithreading for å utføre forskjellige funksjoner som å stoppe gjeldende tråd og la andre tråder utføre, spesifisere prioritet til trådene, og så videre.
Denne oppskrivningen forklarer forskjellige aspekter ved multithreading, for eksempel hva som er multithreading, dens betydning, livssyklus, metoder og praktisk implementering.