public class UnboundedQueue<E>
extends java.lang.Object
Queue zum Austausch von Nachrichten zwischen Threads. Mit der Methode put(E)
können beliebige Objekte (Nachrichten) in die Queue eingetragen (gesendet) werden und i.a. von einem anderen Thread mit den Methoden take()
oder poll(long)
aus der Queue entnommen (empfangen) werden. Die generische Queue kann durch Angabe eines Typs auf diesen bestimmten Objekttypen arbeiten. Die Anzahl der Nachrichten in der Queue ist nicht beschränkt. Die Nachrichten werden in der Reihenfolge empfangen in der sie versendet wurden (first in first out, FIFO).
Constructor and Description |
---|
UnboundedQueue() |
Modifier and Type | Method and Description |
---|---|
E |
poll(long timeout)
Empfängt und entfernt eine Nachricht aus der Queue.
|
void |
put(E message)
Sendet eine Nachricht an die Queue.
|
int |
size()
Bestimmt die Größe dieser Queue.
|
E |
take()
Empfängt und entfernt eine Nachricht aus der Queue.
|
private final java.util.LinkedList<E> _list
public void put(E message)
Sendet eine Nachricht an die Queue.
message
- Zu versendende Nachricht.public E take() throws java.lang.InterruptedException
Empfängt und entfernt eine Nachricht aus der Queue. Wenn die Queue leer ist, dann wartet die Methode, bis eine Nachricht in die Queue gesendet wurde. Wenn mehrere Nachrichten in der Queue vorhanden sind, wird die Nachricht empfangen und entfernt, die als erstes in die Queue gesendet wurde.
java.lang.InterruptedException
- Wenn der Thread unterbrochen wurde während auf Nachrichten gewartet wurde.public E poll(long timeout) throws java.lang.InterruptedException
Empfängt und entfernt eine Nachricht aus der Queue. Wenn die Queue leer ist, dann wartet die Methode, bis eine Nachricht in die Queue gesendet wurde oder bis die angegebene Zeit verstrichen ist. Wenn mehrere Nachrichten in der Queue vorhanden sind, wird diejenige Nachricht empfangen und entfernt, die als erstes in die Queue gesendet wurde.
timeout
- Zeit in Millisekunden, für die bei leerer Queue auf neue Nachrichten gewartet wird.null
, wenn nach Ablauf des Timeouts immer noch keine Nachricht in der Queue vorhanden ist.java.lang.InterruptedException
- Wenn der Thread unterbrochen wurde während auf Nachrichten gewartet wurde.public int size()
Bestimmt die Größe dieser Queue.