public class Semaphore extends Object
Modifier and Type | Field and Description |
---|---|
private int |
_permits
Diese Variable gibt an, wie oft eine Sperre geholt werden darf (wie oft ein kritischer Abschnitt betreten werden
kann).
|
private int |
_upperBoundPermit
Wie viele Threads dürfen maximal in den kritischen Abschnitt.
|
Constructor and Description |
---|
Semaphore(int permits)
Einen Semaphor erzeugen, der
permit viele acquire Zugriffe zuläßt, bis er jeden
weiteren Thread, der acquire aufruft, mit wait "schlafen" legt. |
Modifier and Type | Method and Description |
---|---|
void |
acquire()
Eine Sperre des Semaphores anfordern, sind keine Sperren mehr zu vergeben, dann wird der Thread mit wait()
angehalten.
|
void |
release()
Eine Sperre des Semaphores freigeben, dies befreit andere Threads, die auf eine Sperre warten.
|
void |
setUpperBoundPermit(int upperBoundPermit)
Diese Methode setzt die Anzahl der Sperren neu.
|
private int _permits
acquire
auszuführen.private int _upperBoundPermit
release
erhöht werden kann. Diese Variable kann mit set-Methode erhöht werden.public Semaphore(int permits)
permit
viele acquire
Zugriffe zuläßt, bis er jeden
weiteren Thread, der acquire
aufruft, mit wait "schlafen" legt.permits
- Wie viele Threads dürfen in den kritischen Abschnittpublic void acquire()
public void release()
public void setUpperBoundPermit(int upperBoundPermit)
upperBoundPermit
- Neue Obergrenze, soviele Sperren stehen nun zur Verfügung