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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidEin Element T speichern.booleanEin Element T speichern oder nach einem Timeout abbrechen.voidaddSynchronized(T elem) booleanempty()Gibt, ob der Puffer leer ist.booleanfull()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.intsize()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:BufferEin Element T speichern. Falls der Puffer voll ist, warten bis ein Platz frei wird.- Specified by:
addin interfaceBuffer<T>- Parameters:
elem- zu speicherndes Element.- Throws:
InterruptedException- wenn das Warten unterbrochen wird.
-
remove
Description copied from interface:BufferLiest und entfernt ein Element. Falls der Puffer leer ist, warten bis ein Platz belegt wird.- Specified by:
removein interfaceBuffer<T>- Returns:
- gelesenes Element.
- Throws:
InterruptedException- falls das Warten unterbrochen wird.
-
add
Description copied from interface:BufferEin Element T speichern oder nach einem Timeout abbrechen. Falls der Puffer voll ist, warten bis ein Platz frei wird.- Specified by:
addin 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:BufferLiest und entfernt ein Element oder nach einem Timeout abbrechen. Falls der Puffer leer ist, warten bis ein Platz belegt wird.- Specified by:
removein 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:BufferGibt, ob der Puffer leer ist. -
full
public boolean full()Description copied from interface:BufferGibt, ob der Puffer voll ist. -
size
public int size()Description copied from interface:BufferGibt die Anzahl im Puffer gespeicherten Elemente zurück.
-