BlockingQueue'da kuyruğa eleman ekleme ve kuyruktan elaman alma yöntemleri aşağıdaki gibidir:
- add : Verilen elemanı kuyruğa ekler. Eğer kapasite aşılması gibi sorun oluşursa IllegalStateException fırlatılır
- offer : Verilen elemanı kuyruğa ekler. Eğer kapasite aşılması oluşursa false dönülür. Timeout verilirse verilen süre kuyruğun boşalmasını bekler
- put : Verilen elemanı kuyruğa ekler. Eğer kuyruk kapasitesi dolu ise boşalana kadar bekler.
- remove : Kuyruğun başında elamanı verir ve ardından kuyruktan kaldırır. Kuyruk boş ise NoSuchElementException fırlatılır.
- poll : Kuyruğun başında elamanı verir ve ardından kuyruktan kaldırır. Kuyruk boş ise null dönülür. Timeout verilirse verilen süre kuyruğun dolmasını bekler.
- take : Kuyruğun başında elamanı verir ve ardından kuyruktan kaldırır. Kuyruk boş ise bir eleman eklenene kadar bekler.
- element : Kuyruğun başında elamanı verir ancak kuyruktan kaldırmaz. Kuyruk boş ise NoSuchElementException fırlatılır.
- peek : Kuyruğun başında elamanı verir ancak kuyruktan kaldırmaz. Kuyruk boş ise null dönülür
add, offer, remove, poll, element, peek yöntemleri Queue interface'sinden gelir. Bloklamayı sağlayan take() ve put() yöntemi BlockingQueue arayüzüne aittir.
Yukarıdaki yöntemler bir tablo şeklinde aşağıdaki gibi gösterilebilir:
Yöntem | Exception Oluşur | Null Dönülür | Bloklar/Bekler | Belirli Süre Bloklar/Bekler |
Ekle | add() | offer() | put() | offer() |
Al ve Kaldır | remove() | poll() | take() | poll() |
Sadece Al | element() | peek() | - | - |