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ä?
- BlockingQueue Types
- Menetelmät BlockingQueue-käyttöliittymässä
- BlockingQueue Interface Java-sovelluksessa Esimerkki: Palvelu
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.
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.