Package ch.hslu.exercises.sw06.ex4
Class BoundedBuffer<T>
java.lang.Object
ch.hslu.exercises.sw06.ex4.BoundedBuffer<T>
- Type Parameters:
T
- Elememente des Buffers
- All Implemented Interfaces:
Buffer<T>
Puffer nach dem First In First Out Prinzip mit einer begrenzten Kapazität.
Der Puffer ist thread sicher.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Ein Element T speichern.boolean
Ein Element T speichern oder nach einem Timeout abbrechen.void
addSynchronized
(T elem) boolean
empty()
Gibt, ob der Puffer leer ist.boolean
full()
Gibt, ob der Puffer voll ist.remove()
Liest und entfernt ein Element.remove
(long millis) Liest und entfernt ein Element oder nach einem Timeout abbrechen.int
size()
Gibt die Anzahl im Puffer gespeicherten Elemente zurück.
-
Constructor Details
-
BoundedBuffer
public BoundedBuffer(int n) Erzeugt einen Puffer mit bestimmter Kapazität.- Parameters:
n
- Kapazität des Puffers
-
-
Method Details
-
add
Description copied from interface:Buffer
Ein Element T speichern. Falls der Puffer voll ist, warten bis ein Platz frei wird.- Specified by:
add
in interfaceBuffer<T>
- Parameters:
elem
- zu speicherndes Element.- Throws:
InterruptedException
- wenn das Warten unterbrochen wird.
-
remove
Description copied from interface:Buffer
Liest und entfernt ein Element. Falls der Puffer leer ist, warten bis ein Platz belegt wird.- Specified by:
remove
in interfaceBuffer<T>
- Returns:
- gelesenes Element.
- Throws:
InterruptedException
- falls das Warten unterbrochen wird.
-
add
Description copied from interface:Buffer
Ein Element T speichern oder nach einem Timeout abbrechen. Falls der Puffer voll ist, warten bis ein Platz frei wird.- Specified by:
add
in interfaceBuffer<T>
- Parameters:
elem
- zu speicherndes Element.millis
- Timeout bis zum Abbruch.- Returns:
- true, wenn Element gespeichert wurde, false, wenn Timeout eingetreten ist.
- Throws:
InterruptedException
- wenn das Warten unterbrochen wird.
-
remove
Description copied from interface:Buffer
Liest und entfernt ein Element oder nach einem Timeout abbrechen. Falls der Puffer leer ist, warten bis ein Platz belegt wird.- Specified by:
remove
in interfaceBuffer<T>
- Parameters:
millis
- Timeout bis zum Abbruch.- Returns:
- gelesenes Element.
- Throws:
InterruptedException
- falls das Warten unterbrochen wird.
-
addSynchronized
-
empty
public boolean empty()Description copied from interface:Buffer
Gibt, ob der Puffer leer ist. -
full
public boolean full()Description copied from interface:Buffer
Gibt, ob der Puffer voll ist. -
size
public int size()Description copied from interface:Buffer
Gibt die Anzahl im Puffer gespeicherten Elemente zurück.
-