10 Ağustos 2017 Perşembe

BlockingQueue Arayüzü

Giriş
Şu satırı dahil ederiz.
import java.util.concurrent.BlockingQueue;
Arayüzü gerçekleştiren sınıflardan bazıları ArrayBlockingQueue, LinkedBlockingQueue

constructor
Arayüzü gerçekleştiren sınıflardan birisini kullanabiliriz.
BlockingQueue<Foo> q = new ArrayBlockingQueue<> (200);
add metodu
Eğer kuyruk doluysa, bloke olmak yerine exception atar.
Throws: IllegalStateException - if this queue is full
draintTo metodu
Şöyle yaparız.
List<Foo> copy = ...;

// to grab up to 25 elements
q.drainTo (copy, 25);
offer metodu
İmzası şöyle
public boolean offer (E e)
Şöyle yaparız. Eğer yer yoksa false döner.
boolean added = q.offer (e);
if (!added) {
  ...Do something
}
put metodu
Şöyle yaparız.
BlockingQueue< Integer > q = ...;
int i = 0;
q.put (i);
take metodu
İmzası şöyle
public E take () throws InterruptedException
Şöyle yaparız. Eğer kuyruk boş ise bloke olur.
Foo request = q.take ();
take metodu null dönemez. Şu kontrolü yapmak kuyruğa özellikle null konulmadıysa zorunlu değil.
if (request == null) {...}


Hiç yorum yok:

Yorum Gönder