Kuinka toteuttaa BlockingQueue-käyttöliittymä Java-käyttöjärjestelmässä



Tämä artikkeli antaa sinulle yksityiskohtaisen ja kattavan tiedon siitä, miten BlockingQueue-rajapinta otetaan käyttöön Java-käyttöjärjestelmässä.

Jono on tärkeä osa mitä tahansa ohjelmointikieliä. Varsinkin jos puhumme . Tässä artikkelissa käsitellään Java-käyttöjärjestelmän BlockingQueue-liitäntää seuraavassa järjestyksessä:

Mikä on Java-BlockingQueue-käyttöliittymä?

Javan BlockingQueue Interface on jono, joka estetään, kun yrität poistua siitä ja jono on tyhjä, tai jos yrität sijoittaa kohteita siihen ja jono on jo täynnä. Lanka, joka yrittää purkaa tyhjästä jonosta, estetään, kunnes joku muu ketju lisää kohteen jonoon. Lanka, joka yrittää järjestää kohteen koko jonoon, on estetty, kunnes jokin muu säie tekee tilaa jonossa joko poistamalla yhden tai useamman kohteen tai tyhjentämällä jonon kokonaan.





prioriteettijono c ++: ssa

päivämäärän tietotyyppi sql-muodossa

BlockingQueue Interface Java ei hyväksytyhjäarvot ja heittoNullPointerExceptionjos yrität tallentaa nolla-arvon jonoon.Java BlockingQueue -toteutukset ovat kierre turvallinen . Kaikki jonotusmenetelmät ovat luonteeltaan atomisia, ja niissä käytetään sisäisiä lukkoja tai muita samanaikaisuuden hallinnan muotoja.



Java Queue -luokkakaavio

Java Queue -rajapinta laajentaa Collection-käyttöliittymää. Collection-käyttöliittymä laajentaa Iterable-käyttöliittymää. Jotkut usein käytetyistä jonon käyttöönottoluokista ovat LinkedList, PriorityQueue, ArrayBlockingQueue, DelayQueue, LinkedBlockingQueue, PriorityBlockingQueue,jne. AbstractQueue tarjoaa jono-käyttöliittymän luuranko vähentääkseen jonon käyttöönottoa.

BlockingQueue Types

BlockingQueue on kahta tyyppiä:



  • Rajoittamaton jono: Estojonon kapasiteetti asetetaan Kokonaisluku.MAX_VALUE. Rajoittamattoman estojonon tapauksessa jono ei koskaan esty, koska se voi kasvaa erittäin suureksi. kun lisäät elementtejä, sen koko kasvaa.

Syntaksi:
BlockingQueue blocking queue = uusi LinkedBlockingDeque ()

  • Rajoitettu jono: Toinen jonotyyppi on rajoitettu jono. Rajoitetun jonon tapauksessa voit luoda jonon ohittamalla jonon kapasiteetin jonojen rakentaja:
    Syntaksi:
    // Luo estojonon, jonka kapasiteetti on 5

BlockingQueue blocking queue = uusi LinkedBlockingDeque (5)

Menetelmät BlockingQueue-käyttöliittymässä

Vaihda tyyppiä Menetelmän syntakse Käytetty Kuvaus
looginen lisää (E ja) Lisäys

Lisää määritetty elementti tähän jonoon, jos se on mahdollista tehdä välittömästi rikkomatta kapasiteettirajoituksia, palauttamalla tosi onnistumisen jälkeen ja heittämällä IllegalStateException, jos tilaa ei ole tällä hetkellä käytettävissä.

looginen sisältää (Object o) Tutki

Palauttaa arvon true, jos tämä jono sisältää määritetyn elementin.

int drainTo (Kokoelma c) Haetaan tai poistetaan

Poistaa kaikki käytettävissä olevat elementit tästä jonosta ja lisää ne annettuun kokoelmaan.

int drainTo (Kokoelma c, int maxElements) Haetaan tai poistetaan

Poistaa korkeintaan tietyn määrän käytettävissä olevia elementtejä tästä jonosta ja lisää ne annettuun kokoelmaan.

looginen tarjous (E ja) Lisäys

Lisää määritetty elementti tähän jonoon, jos se on mahdollista tehdä välittömästi rikkomatta kapasiteettirajoituksia, palauttamalla tosi onnistumisen jälkeen ja epätosi, jos tilaa ei ole tällä hetkellä käytettävissä.

looginen tarjous (E e, pitkä aikakatkaisu, TimeUnit-yksikkö) Lisäys

Lisää määritetty elementti tähän jonoon odottamalla määrättyä odotusaikaa, kunnes tilaa tarvitaan.

ON kysely (pitkä aikakatkaisu, TimeUnit-yksikkö) Haetaan tai poistetaan

Hakee ja poistaa tämän jonon pään odottamalla määritettyä odotusaikaa, kunnes elementti on käytettävissä.

mitätön laittaa (E e) Lisäys

Lisää määritetty elementti tähän jonoon odottamalla tarvittaessa tilaa.

int jäljellä oleva kapasiteetti () Tutki

Palauttaa niiden lisäelementtien lukumäärän, jotka tämä jono voi ihanteellisesti hyväksyä (ilman muistia tai resurssirajoituksia) estämättä, tai Integer.MAX_VALUE, jos sisäistä rajaa ei ole.

looginen poista (Object o) + Haetaan tai poistetaan

Poistaa yhden määritetyn elementin esiintymän tästä jonosta,jos se on läsnä.

ON ottaa () Haetaan tai poistetaan

Hakee ja poistaa tämän jonon pään odottamalla tarvittaessa, kunnes elementti on käytettävissä.

BlockingQueue Interface Java-sovelluksessa Esimerkki: Palvelu

pack com.journaldev.concurrency import java.util.concurrent.ArrayBlockingQueue import java.util.concurrent.BlockingQueue public class ProducerConsumerService {public static void main (String [] args) {// Creating BlockingQueue of size 10 BlockingQueue quayue (new Array) 10) Tuottajatuottaja = uusi tuottaja (jono) Kuluttajakuluttaja = uusi kuluttaja (jono) // aloittava tuottaja tuottamaan viestejä jonossa uusi säie (tuottaja) .start () // aloittava kuluttaja kuluttamaan viestejä jonosta uusi säie (kuluttaja) .start () System.out.println ('Tuottaja ja kuluttaja on aloitettu')}}

Tämän avulla olemme päässeet BlockingQueue Interface in Java -artikkeliin. Toivon, että kaikki käsitteesi ovat nyt selkeät.

Katso Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Edurekan Java J2EE- ja SOA-koulutus- ja sertifiointikurssit on suunniteltu opiskelijoille ja ammattilaisille, jotka haluavat olla Java-kehittäjiä. Kurssi on suunniteltu antamaan sinulle etumatka Java-ohjelmointiin ja kouluttamaan sekä ydin- että edistyneitä Java-konsepteja sekä erilaisia ​​Java-kehyksiä, kuten Hibernate & Spring.

Onko sinulla kysymys meille? Mainitse se tämän “BlockingQueue Interface in Java” -blogin kommenttiosassa ja otamme sinuun yhteyttä mahdollisimman pian.