public class PriorityChannel
extends java.lang.Object
Constructor and Description |
---|
PriorityChannel(int numberOfPriorityClasses,
int capacityPerPriorityClass)
Legt einen neuen Kommunikationskanal an.
|
Modifier and Type | Method and Description |
---|---|
void |
clear()
Löscht alle im Kommunikationskanal vorhandenen Nachrichten.
|
boolean |
isEmpty()
Bestimmt, ob der Kommunikationskanal leer ist.
|
boolean |
offer(PriorizedObject item,
long timeout)
Überträgt eine Nachricht in den Kommunikationskanal.
|
PriorizedObject |
poll(long timeout)
Empfängt und entfernt eine Nachricht aus dem Kommunikationskanal.
|
void |
put(PriorizedObject item)
Überträgt eine Nachricht in den Kommunikationskanal.
|
PriorizedObject |
take()
Empfängt und entfernt eine Nachricht aus dem Kommunikationskanal.
|
public PriorityChannel(int numberOfPriorityClasses, int capacityPerPriorityClass)
numberOfPriorityClasses
- Anzahl der zu verwendenden Prioritätsklassen. Diese sind von 0
bis
numberOfPriorityClasses-1
durchnummeriert.capacityPerPriorityClass
- Maximale Anzahl der pro Prioritätsklasse im Kommunikationskanal gespeicherten
Objekte.public void put(PriorizedObject item) throws java.lang.InterruptedException
item
- Objekt, das in den Kommunikationskanal übertragen werden soll.java.lang.InterruptedException
- Wenn der Thread unterbrochen wurde, während auf freien Platz im Kommunikationskanal
gewartet wurde.public boolean offer(PriorizedObject item, long timeout) throws java.lang.InterruptedException
item
- Objekt, das in den Kommunikationskanal übertragen werden soll.timeout
- Zeit in Millisekunden, für die bei vollem Kommunikationskanal maximal auf freien Platz gewartet
wird.java.lang.InterruptedException
- Wenn der Thread unterbrochen wurde, während auf freien Platz im Kommunikationskanal
gewartet wurde.public PriorizedObject take() throws java.lang.InterruptedException
java.lang.InterruptedException
- Wenn der Thread unterbrochen wurde, während auf Nachrichten gewartet wurde.public PriorizedObject poll(long timeout) throws java.lang.InterruptedException
timeout
- Zeit in Millisekunden, für die bei leerem Kommunikationskanal auf neue Nachrichten gewartet wird.null
, wenn nach Ablauf des Timeouts immer noch keine Nachricht im
Kommunikationskanal vorhanden ist.java.lang.InterruptedException
- Wenn der Thread unterbrochen wurde, während auf Nachrichten gewartet wurde.public boolean isEmpty()
true
bei leerem Kommunikationskanal, sonst false
.public void clear()