Kuidas rakendada Java'is BlockingQueue liidest



See artikkel annab teile üksikasjalikud ja põhjalikud teadmised BlockingQueue liidese Java-rakendamise kohta.

Järjekord on mis tahes programmeerimiskeele oluline aspekt. Eriti kui me räägime . Selles artiklis käsitleme Java BlockingQueue liidest järgmises järjekorras:

Mis on Java BlockingQueue'i liides?

Java BlockingQueue'i liides on järjekord, mis blokeeritakse, kui proovite sellest eemalduda ja järjekord on tühi või kui proovite sellele üksusi varjata ja järjekord on juba täis. Lõng, mis üritab tühja järjekorrast lahti saada, on blokeeritud, kuni mõni teine ​​lõim lisab üksuse järjekorda. Lõng, mis üritab üksust täisjärjekorras sisestada, on blokeeritud, kuni mõni teine ​​lõim teeb järjekorras ruumi, kas eemaldades ühe või mitu üksust või tühjendades järjekorra täielikult.





prioriteedijärjekord c ++

Java-i BlockingQueue liides ei aktsepteerinullväärtused ja viskamineNullPointerExceptionkui proovite nullväärtust järjekorda salvestada.Java BlockingQueue'i rakendused on niidikindel . Kõik järjekorrameetodid on oma olemuselt aatomsed ja kasutavad sisemisi lukke või muid samaaegsuse kontrolli vorme.



Java järjekorra klassi skeem

Java Queue liides laiendab liidest Collection. Liides Collection laiendab liidest Iterable. Mõned sageli kasutatavad järjekorra juurutamise klassid on LinkedList, PriorityQueue, ArrayBlockingQueue, DelayQueue, LinkedBlockingQueue, PriorityBlockingQueue,jne. AbstractQueue pakub liidese Queue skeleti rakendust, et vähendada pingutusi Queue'i rakendamisel.

Blokeerimise järjekorra tüübid

Blokeerimisjärjekorda on kahte tüüpi:



mis on jama rmi
  • Piiramatu järjekord: Blokeerimisjärjekorra mahuks määratakse Integer.MAX_VALUE. Piiramata blokeerimisjärjekorra korral ei blokeeru järjekord kunagi, sest see võib kasvada väga suureks. kui lisate elemente, kasvab selle suurus.

Süntaks:
BlockingQueue blokeerimise järjekord = new LinkedBlockingDeque ()

  • Piiratud järjekord: Teist tüüpi järjekord on piiratud järjekord. Piiratud järjekorra korral saate luua järjekorra, jättes mööda järjekorra mahutavusest järjekorrakonstruktoris:
    Süntaks:
    // loob blokeerimisjärjekorra mahuga 5

BlockingQueue blokeerimise järjekord = new LinkedBlockingDeque (5)

Meetodid BlockingQueue liideses

Muuda tüüpi Meetodi süntaks Kasutatud Kirjeldus
boolean lisa (E ja) Sisestamine

Lisab määratud elemendi sellesse järjekorda, kui seda on võimalik teha kohe, ilma et see piiraks mahupiiranguid, tagastab edukuse korral tõene väärtuse ja viskab IllegalStateExceptioni, kui ruumi pole praegu saadaval.

boolean sisaldab (Object o) Uurima

Tagastab tõene, kui see järjekord sisaldab määratud elementi.

int drainTo (kogu c) Allalaadimine või eemaldamine

Eemaldab sellest järjekorrast kõik saadaolevad elemendid ja lisab need antud kogusse.

int drainTo (kogu c, int maxElements) Allalaadimine või eemaldamine

Eemaldab sellest järjekorrast maksimaalselt antud arvu saadaolevaid elemente ja lisab need antud kogusse.

boolean pakkumine (E ja) Sisestamine

Lisab määratud elemendi sellesse järjekorda, kui seda on võimalik teha kohe, ilma et see piiraks mahupiiranguid, tagastades edukuse korral tõese ja vale, kui ruumi pole praegu saadaval.

boolean pakkumine (E e, pikk ajalõpp, TimeUniti ühik) Sisestamine

Lisab määratud elemendi sellesse järjekorda, oodates kuni ruumi saabumiseni määratud ooteaega.

mis on c ++ nimeruumid
ON küsitlus (pikk ajalõpp, TimeUniti ühik) Allalaadimine või eemaldamine

Toob ja eemaldab selle järjekorra pea, oodates elemendi kättesaadavaks muutmiseks vajaduse korral määratud ooteaega.

tühine panema (E e) Sisestamine

Lisab määratud elemendi sellesse järjekorda, oodates vajadusel ruumi vabanemist.

fibonacci seeria kood javas
int järelejäänud võimsus () Uurima

Tagastab täiendavate elementide arvu, mille see järjekord võib ideaalselt (mälu või ressursside piirangute puudumisel) blokeerimata aktsepteerida, või Integer.MAX_VALUE, kui sisemist piirangut pole.

boolean eemalda (objekt o) + Allalaadimine või eemaldamine

Eemaldab sellest järjekorrast määratud elemendi ühe eksemplari,kui see on olemas.

ON võtma () Allalaadimine või eemaldamine

Toob ja eemaldab selle järjekorra pea, oodates vajadusel, kuni mõni element saadaval on.

BlockingQueue liides Java-s Näide: teenus

pakett com.journaldev.concurrency import java.util.concurrent.ArrayBlockingQueue import java.util.concurrent.BlockingQueue public class ProducerConsumerService {public static void main (String [] args) {// Suuruse 10 BlockingQueue loomine BlockingQueue quayue = new Array 10) Tootjatootja = uus Tootja (järjekord) Tarbijatarbija = uus Tarbija (järjekord) // alustav tootja tootma järjekorras olevaid sõnumeid uus lõime (tootja) .start () // alustav tarbija ootab sõnumeid järjekorrast uus lõim (tarbija) .start () System.out.println ('Tootja ja tarbija on käivitatud')}}

Sellega jõuame Java BlockingQueue'i liidese artiklini. Loodan, et kõik teie mõisted on nüüd selged.

Vaadake Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Edureka Java J2EE ning SOA koolitus- ja sertifitseerimiskursus on mõeldud õpilastele ja spetsialistidele, kes soovivad olla Java arendajad. Kursus on loodud selleks, et anda teile Java programmeerimises edukas algus ja õpetada teid nii Java-põhiprogrammide kui ka edasijõudnute mõistete ning erinevate Java-raamistike, näiteks Hibernate & Spring, jaoks.

Kas teil on meile küsimus? Palun mainige seda selle ajaveebi “BlockingQueue Interface in Java” kommentaaride osas ja võtame teiega ühendust niipea kui võimalik.