Kako uporabiti vmesnik BlockingQueue v Javi



V tem članku boste našli podrobno in celovito znanje o tem, kako v Java vgraditi vmesnik BlockingQueue.

Čakalna vrsta je pomemben vidik katerega koli programskega jezika. Sploh če govorimo o . V tem članku bomo razpravljali o vmesniku BlockingQueue v Javi v naslednjem vrstnem redu:

Kaj je vmesnik BlockingQueue v Javi?

BlockingQueue Interface v Javi je čakalna vrsta, ki se blokira, ko poskušate iz nje umakniti čakalno vrsto in če je prazna, ali če poskušate postaviti elemente v čakalno vrsto in je čakalna vrsta že polna. Nit, ki poskuša odstraniti čakalno vrsto iz prazne čakalne vrste, je blokirana, dokler katera druga nit ne vstavi elementa v čakalno vrsto. Nit, ki skuša postaviti element v celotno čakalno vrsto, se blokira, dokler katera druga nit ne naredi prostora v čakalni vrsti, bodisi z razveljavitvijo enega ali več elementov bodisi s popolno čiščenjem čakalne vrste.





čakalna vrsta v c ++

BlockingQueue Interface v Javi ne sprejemaničvrednosti in metatiNullPointerExceptionče poskušate shraniti ničelno vrednost v čakalno vrsto.Izvedbe Java BlockingQueue so brez navojev . Vse metode čakanja so atomske narave in uporabljajo notranje ključavnice ali druge oblike nadzora hkratnosti.



primer kode logistične regresije python

Diagram razreda čakalne vrste Java

Vmesnik Java Queue razširja vmesnik Collection. Vmesnik Collection razširja vmesnik Iterable. Nekateri pogosto uporabljeni razredi izvajanja čakalne vrste so LinkedList, PriorityQueue, ArrayBlockingQueue, DelayQueue, LinkedBlockingQueue, PriorityBlockingQueue,itd .. AbstractQueue zagotavlja skeletno izvedbo vmesnika Queue za zmanjšanje napora pri izvajanju Queue.

Vrste vrst BlockingQueue

BlockingQueue sta dve vrsti:



  • Neomejena čakalna vrsta: Kapaciteta čakalne vrste za blokiranje bo nastavljena na Integer.MAX_VALUE. V primeru neomejene čakalne vrste čakalna vrsta ne bo nikoli blokirana, ker bi lahko narasla do zelo velike velikosti. ko dodate elemente, njegova velikost raste.

Sintaksa:
BlockingQueue čakalna vrsta = new LinkedBlockingDeque ()

  • Omejena vrsta: Druga vrsta čakalne vrste je omejena vrsta. V primeru omejene čakalne vrste lahko ustvarite čakalno vrsto, tako da izognete zmogljivosti čakalne vrste v konstruktorju čakalnih vrst:
    Sintaksa:
    // Ustvari zaporo blokiranja s kapaciteto 5

BlockingQueue čakalna vrsta = new LinkedBlockingDeque (5)

Metode v vmesniku BlockingQueue

tutorial o orodju talend etl pdf
Spremeni vrsto Sintaksa metode Uporablja za Opis
logično dodaj (E in) Vstavitev

V to vrsto vstavi navedeni element, če je to mogoče storiti takoj, ne da bi kršili omejitve zmogljivosti, ob uspehu vrnili true in vrgli IllegalStateException, če trenutno ni na voljo prostora.

logično vsebuje (predmet o) Preuči

Vrne true, če ta vrsta vsebuje navedeni element.

int drainTo (Zbirka c) Pridobivanje ali odstranjevanje

Odstrani vse razpoložljive elemente iz te čakalne vrste in jih doda v določeno zbirko.

int drainTo (Zbirka c, int maxElements) Pridobivanje ali odstranjevanje

Odstrani največ dano število razpoložljivih elementov iz te čakalne vrste in jih doda v dano zbirko.

logično ponudba (E in) Vstavitev

V to vrsto vstavi navedeni element, če je to mogoče storiti takoj, ne da bi kršili omejitve zmogljivosti, ob uspehu vrne true in false, če trenutno ni na voljo prostora.

logično ponudba (E e, dolga časovna omejitev, enota TimeUnit) Vstavitev

V to čakalno vrsto vstavi navedeni element in po potrebi počaka do navedenega čakalnega časa, da bo prostor na voljo.

JE anketa (dolga časovna omejitev, enota TimeUnit) Pridobivanje ali odstranjevanje

Pridobi in odstrani glavo te čakalne vrste in po potrebi počaka do določenega čakalnega časa, da element postane na voljo.

praznino dal (E e) Vstavitev

V to vrsto vstavi navedeni element in po potrebi počaka, da prostor postane na voljo.

int preostala zmogljivost () Preuči

Vrne število dodatnih elementov, ki jih ta čakalna vrsta (v odsotnosti omejitev pomnilnika ali virov) lahko sprejme brez blokade, ali Integer.MAX_VALUE, če ni nobene notranje omejitve.

logično odstrani (Predmet o) + Pridobivanje ali odstranjevanje

Odstrani en primerek določenega elementa iz te čakalne vrste,če je prisoten.

JE vzemi () Pridobivanje ali odstranjevanje

Pridobi in odstrani glavo te čakalne vrste in po potrebi počaka, dokler element ne postane na voljo.

BlockingQueue vmesnik v Javi Primer: storitev

paket com.journaldev.concurrency import java.util.concurrent.ArrayBlockingQueue import java.util.concurrent.BlockingQueue javni razred ProducerConsumerService {public static void main (String [] args) {// Ustvarjanje BlockingQueue velikosti 10 BlockingQueueueloueQueueloqueQueuelo 10) Proizvajalec proizvajalec = novi proizvajalec (vrsta) Potrošnik potrošnik = nov potrošnik (vrsta) // začetni proizvajalec za izdelavo sporočil v čakalni vrsti nova nit (proizvajalec) .start () // začetni potrošnik za porabo sporočil iz čakalne vrste nova nit (potrošnik) .start () System.out.println ('Proizvajalec in potrošnik je bil zagnan')}}

system.exit (0) java

S tem smo prišli do konca članka BlockingQueue Interface v Javi. Upam, da so vsi vaši koncepti zdaj jasni.

Oglejte si Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, ki se širijo po vsem svetu. Edurekin tečaj za usposabljanje in certificiranje Java J2EE in SOA je namenjen študentom in strokovnjakom, ki želijo biti razvijalec Java. Tečaj je zasnovan tako, da vam nudi uvod v programiranje Java in vas usposobi za osnovne in napredne koncepte Java, skupaj z različnimi Java okviri, kot so Hibernate & Spring

Imate vprašanje za nas? Prosimo, omenite ga v oddelku za komentarje tega bloga 'BlockingQueue Interface in Java', da se vam bomo javili v najkrajšem možnem času.