logo

„Java“ gijos koncepcija

Prieš pristatydami siūlų koncepcija , negalėjome lygiagrečiai vykdyti daugiau nei vienos užduoties. Tai buvo trūkumas, ir norint pašalinti šį trūkumą, Siūlo koncepcija buvo pristatytas.

A Siūlas yra labai lengvas procesas arba, galima sakyti, mažiausia proceso dalis, leidžianti programai veikti efektyviau, vienu metu vykdant kelias užduotis.

c programos eilučių masyvas

Norėdami atlikti sudėtingas užduotis fone, naudojome Gijos koncepcija Java . Visos užduotys vykdomos nepažeidžiant pagrindinės programos. Programoje ar procese visos gijos turi savo atskirą vykdymo kelią, todėl kiekviena proceso gija yra nepriklausoma.

„Java“ gijos koncepcija

Kitas naudojimo pranašumas siūlas yra tai, kad jei gijai jos vykdymo metu atsiranda išimtis arba klaida, tai neturi įtakos kitų gijų vykdymui. Visos gijos turi bendrą atmintį ir turi savo krūvą, vietinius kintamuosius ir programų skaitiklį. Kai vienu metu lygiagrečiai vykdomos kelios gijos, šis procesas vadinamas Daugiagija .

Paprastu būdu gija yra:

  • Funkcija, kurios dėka galime atlikti kelias veiklas viename procese.
  • Lengvas procesas.
  • Atliktų pareiškimų serija.
  • Įdėta metodų iškvietimų seka.

Siūlų modelis

Kaip ir procesas, gija egzistuoja keliose būsenose. Šios būsenos yra tokios:

„Java“ gijos koncepcija

1) Nauja (paruošta paleisti)

Yra siūlas Nauja kai gauna CPU laiko.

2) Bėgimas

Yra siūlas a Bėgimas nurodyti, kada jis vykdomas.

3) Sustabdytas

Siūlas yra Sustabdytas nurodyti, kai jis laikinai neaktyvus arba vykdomas.

4) Užblokuotas

Siūlas yra Užblokuota nurodyti, kada laukia išteklių.

oi

5) Nutrauktas

Siūlas patenka į tokią būseną, kai bet kuriuo metu nedelsiant sustabdo jos vykdymą.

Gijos kūrimas

Gija sukuriama „sukuriant arba įgyvendinant“. Paleidžiama sąsaja arba pratęsiant Siūlų klasė . Tai yra vieninteliai du būdai, kuriais galime sukurti giją.

Pasinerkime į abiejų šių gijos kūrimo būdų detales:

Siūlų klasė

A Siūlų klasė turi keletą metodų ir konstruktorių, leidžiančių atlikti įvairias gija operacijas. Siūlų klasė išplečia Objektas klasė. The Objektas klasė įgyvendina Paleisti sąsaja. Siūlų klasėje yra šie konstruktoriai, naudojami įvairioms operacijoms atlikti.

    Tema() Siūlas (vykdomas, eilutės pavadinimas) Siūlas (vykdomas tikslas) Gija (gijų grupės grupė, vykdomas tikslas, eilutės pavadinimas) Gija (gijų grupė, vykdomas tikslas) Siūlas (gijų grupė, eilutės pavadinimas) Thread (gijų grupės grupė, vykdomas tikslas, eilutės pavadinimas, ilgas krūvos dydis)

Vykdoma sąsaja (paleisti () metodas)

Vykdomąją sąsają turi įdiegti ta klasė, kurios egzempliorius turi vykdyti gija. Paleidžiama sąsaja suteikia mums paleisti () būdas atlikti veiksmą gijai.

start() metodas

Šis metodas naudojamas naujai sukurtai gijai pradėti. Pradedama nauja gija su nauja iškvietimų krūva. Atlikus pradžia () metodas, gija pakeičia būseną iš Nauja į Vykdoma. Jis vykdo Run() metodas kai gija gauna tinkamą laiką jai vykdyti.

Paimkime pavyzdį, kad suprastume, kaip galime sukurti a Java giją išplėsdami gijos klasę:

eilutę ir stulpelį

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

Išvestis:

„Java“ gijos koncepcija

Gijos kūrimas įdiegiant paleidžiamą sąsają

„Java“ taip pat galime sukurti giją, įdiegę paleidžiamą sąsają. Paleidžiama sąsaja suteikia mums ir run() metodą, ir start() metodą.

Paimkime pavyzdį, kad suprastume, kaip galime sukurti, pradėti ir paleisti giją naudodami paleidžiamą sąsają.

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

Išvestis:

„Java“ gijos koncepcija

Aukščiau pateiktame pavyzdyje mes atliekame kelių sriegių apdorojimą įdiegdami paleidžiamą sąsają. Norėdami sužinoti daugiau apie kelių gijų, paspauskite čia .