Übungen zu BS - Aufgaben (WS 2013/14)
Semaphore werden zur Synchronisation von Threads verwendet. Mehr ...
#include <semaphore.h>


Öffentliche Methoden | |
Semaphore (int c) | |
Der Konstruktor initialisiert den Semaphorzähler mit dem angegebenen Wert c. | |
void | wait () |
Warten auf das Freiwerden eines kritischen Abschnitts. | |
void | signal () |
Freigeben des kritischen Abschnitts. | |
![]() | |
virtual | ~Waitingroom () |
Destruktor. | |
virtual void | remove (Thread *customer) |
Mit dieser Methode kann der angegebene Thread customer vorzeitig aus dem Wartezimmer entfernt werden. |
Weitere Geerbte Elemente | |
![]() | |
Queue () | |
Der Konstruktor initialisiert die Liste als leere Liste. | |
void | enqueue (Thread *item) |
Das Listenelement item wird an das Ende der Liste angefügt. | |
Thread * | dequeue () |
Liefert das erste Element der Liste und entfernt es gleichzeitig aus dieser. | |
void | insert_first (Thread *item) |
Fügt das item am Anfang der Liste ein. | |
void | insert_after (Thread *old_item, Thread *new_item) |
Fügt das Element new_item hinter dem Element old_item in die Liste ein. | |
Thread * | first () |
Liefert das erste Element der Liste ohne es zu entfernen. |
Ausführliche Beschreibung
Semaphore werden zur Synchronisation von Threads verwendet.
Die Klasse Semaphore implementiert das Synchronisationskonzept des zählenden Semaphors. Die benötigte Warteliste erbt sie dabei von ihrer Basisklasse Waitingroom.
Beschreibung der Konstruktoren und Destruktoren
|
inline |
Der Konstruktor initialisiert den Semaphorzähler mit dem angegebenen Wert c.
- Parameter
-
c Initaler Zählerwert des Semaphors
Dokumentation der Elementfunktionen
|
inline |
Freigeben des kritischen Abschnitts.
Freigabeoperation: Wenn auf der Warteliste mindestens ein Thread eingetragen ist, wird der erste davon aufgeweckt. Anderenfalls wird der Semaphorzähler um eins erhöht.
Erneute Implementation in Guarded_Semaphore.
|
inline |
Warten auf das Freiwerden eines kritischen Abschnitts.
Warteoperation: Sofern der Semaphorzähler größer als Null ist, wird er nur um eins erniedrigt. Anderenfalls wird der aktuell laufende Thread an die Warteliste angefügt und blockiert.
Erneute Implementation in Guarded_Semaphore.
Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei:
- meeting/semaphore.h