Како применити интерфејс БлоцкингКуеуе у Јави



Овај чланак ће вам пружити детаљно и свеобухватно знање о примени интерфејса БлоцкингКуеуе у Јави.

Ред је важан аспект било ког програмског језика. Поготово ако разговарамо о . У овом чланку ћемо размотрити интерфејс БлоцкингКуеуе у Јави следећим редоследом:

Шта је интерфејс БлоцкингКуеуе у Јави?

Интерфејс БлоцкингКуеуе у Јави је ред који се блокира када покушате да се повучете из њега, а ред је празан или ако покушате да ставите у њега ставке у ред и ред је већ попуњен. Нит која покушава да уклони ред из празног реда блокира се док нека друга нит не убаци ставку у ред. Нит која покушава да стави у ред ставку у пуном реду је блокирана све док нека друга нит не направи простора у реду, било одбацивањем једне или више ставки или потпуно чишћењем реда.





ред приоритета у ц ++

Интерфејс БлоцкингКуеуе у Јави не прихватанулавредности и бацитиНуллПоинтерЕкцептионако покушате да сачувате нулту вредност у реду.Имплементације Јава БлоцкингКуеуе су потокобезопасними . Све методе чекања су атомске природе и користе унутрашње браве или друге облике контроле паралелности.



Дијаграм класе Јава реда

Интерфејс Јава Куеуе проширује интерфејс Цоллецтион. Интерфејс Цоллецтион проширује интерфејс Итерабле. Неке од често коришћених класа имплементације реда су ЛинкедЛист, ПриоритиКуеуе, АрраиБлоцкингКуеуе, ДелаиКуеуе, ЛинкедБлоцкингКуеуе, ПриоритиБлоцкингКуеуе,итд .. АбстрацтКуеуе пружа скелетну имплементацију интерфејса реда чекања како би се смањио напор у примени реда чекања.

јава програм за фибоначијеву серију

Типови реда блокирања

БлоцкингКуеуе су две врсте:



  • Неограничени ред: Капацитет реда за блокирање биће постављен на Интегер.МАКС_ВАЛУЕ. У случају неограниченог реда за блокирање, ред се никада неће блокирати јер би могао нарасти до врло велике величине. када додате елементе, величина му расте.

Синтакса:
БлоцкингКуеуе ред за блокирање = нев ЛинкедБлоцкингДекуе ()

  • Ограничени ред: Други тип реда је ограничени ред. У случају ограниченог реда, можете створити ред заобилазећи капацитет реда у конструктору редова:
    Синтакса:
    // Ствара ред за блокирање капацитета 5

БлоцкингКуеуе ред за блокирање = нови ЛинкедБлоцкингДекуе (5)

Методе у интерфејсу БлоцкингКуеуе

Цханге Типе Синтакса метода Коришћен за Опис
боолеан додај (Е и) Уметање

Убацује наведени елемент у овај ред ако је то могуће учинити одмах без кршења ограничења капацитета, враћањем труе након успеха и бацањем ИллегалСтатеЕкцептион ако тренутно нема слободног простора.

боолеан садржи (објекат о) Испитајте

Враћа тачно ако овај ред садржи наведени елемент.

инт драинТо (Колекција ц) Преузимање или уклањање

Уклања све доступне елементе из овог реда и додаје их у дату колекцију.

инт драинТо (Колекција ц, инт макЕлементс) Преузимање или уклањање

Уклања највише дати број доступних елемената из овог реда и додаје их у дату колекцију.

боолеан понуда (Е и) Уметање

Убацује наведени елемент у овај ред ако је то могуће учинити одмах без кршења ограничења капацитета, враћајући труе након успеха и фалсе ако тренутно нема слободног простора.

боолеан понуда (Е е, дуго истек, јединица временске јединице) Уметање

Убацује наведени елемент у овај ред, чекајући до одређеног времена чекања ако је потребно да простор постане доступан.

ИС анкета (дуго време чекања, јединица временске јединице) Преузимање или уклањање

Дохваћа и уклања главу овог реда, чекајући до одређеног времена чекања ако је потребно да елемент постане доступан.

празнина ставити (Е е) Уметање

Убацује наведени елемент у овај ред, чекајући ако је потребно да простор постане доступан.

инт преостали капацитет () Испитајте

Враћа број додатних елемената које овај ред може идеално (у одсуству ограничења меморије или ресурса) прихватити без блокирања или Интегер.МАКС_ВАЛУЕ ако не постоји унутрашње ограничење.

боолеан уклони (Објект о) + Преузимање или уклањање

Уклања једну инстанцу наведеног елемента из овог реда,ако је присутан.

ИС узми () Преузимање или уклањање

Дохваћа и уклања главу овог реда, по потреби чекајући док елемент не постане доступан.

Интерфејс БлоцкингКуеуе у Јави Пример: Услуга

пакет цом.јоурналдев.цонцурренци импорт јава.утил.цонцуррент.АрраиБлоцкингКуеуе импорт јава.утил.цонцуррент.БлоцкингКуеуе јавна класа ПродуцерЦонсумерСервице {публиц статиц воид маин (Стринг [] аргс) {// Креирање блокирног реда величине 10 БлоцкингКуеуеуелоуеКуеуелоуеКуеуелоуе куери 10) Произвођач произвођач = нови произвођач (ред) Потрошач потрошач = нови потрошач (ред) // почетни произвођач за производњу порука у реду нев Тхреад (произвођач) .старт () // почетни потрошач да троши поруке из реда нев Тхреад (потрошач) .старт () Систем.оут.принтлн ('Покренут је произвођач и потрошач')}}

Овим смо дошли до краја чланка БлоцкингКуеуе Интерфаце у Јави. Надам се да су сви ваши концепти сада јасни.

Погледајте Едурека, поуздана компанија за учење на мрежи са мрежом од више од 250.000 задовољних ученика раширених широм света. Едурекин курс за обуку и сертификацију Јава Ј2ЕЕ и СОА дизајниран је за студенте и професионалце који желе да буду Јава програмери. Курс је дизајниран да вам пружи почетну предност у Јава програмирању и обучи вас како за основне тако и за напредне Јава концепте, заједно са разним Јава оквирима попут Хибернате & Спринг.

Имате питање за нас? Молимо вас да га помените у одељку за коментаре овог блога „БлоцкингКуеуе Интерфаце ин Јава“ и јавићемо вам се што је пре могуће.