Semaphore implementieren

Neue Frage »

Auf diesen Beitrag antworten »
Master Semaphore implementieren

Meine Frage:
Hey,

ich habe folgende Aufgabe und komme da nicht weiter.

Implementieren Sie Ihre eigene Semaphore, welche das Allozieren und Freigeben mehrerer Ressourcen gleichzeitig korrekt unterstützt. Achten Sie darauf, dass Ihre Implementierung fair ist (Anfragen werden in der Reihenfolge bearbeitet, wie sie eintreffen).

Hinweis: java.util.concurrent.ConcurrentLinkedQueue<E> könnte hilfreich sein.

Meine Ideen:
Ich habe mir eine Klasse Semaphore implentiert, die eine ConcurrentLinkedQueue<Object> enthält, da ich ja nicht weiß, welche Objekte ich dort einordnen muss.

Anschließend definiere ich mir eine Methode aquire() und release();

Bei aquire komme ich aber irgendwie nicht weiter. Ich weiß zum einen nicht, wie ich das aufrufende Object ermitteln und es in die Queue legen kann.
Mir ist auch noch nicht klar wie ich auf das aufrufenede Objekt wait() aufrufen kann.

Könnte ich aquire() auf aquire(Object object) erweitern und this übergeben? Dann kann ich es zumindest in die Queue legen. Das mit object.wait() macht aber trotzdem nicht was es soll.

Hat irgendjemand ein paar Tipps für mich? Bin gerade total am Verzweifeln
 
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »