Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

Semaphore werden zur Synchronisation von Threads verwendet. Mehr ...

#include <semaphore.h>

Klassendiagramm fĂŒr Semaphore:
Zusammengehörigkeiten von Semaphore:

Öffentliche Methoden

 Semaphore (int c)
 Der Konstruktor initialisiert den SemaphorzĂ€hler mit dem angegebenen Wert c. Mehr ...
 
void p ()
 Warten auf das Freiwerden eines kritischen Abschnitts. Mehr ...
 
void v ()
 Freigeben des kritischen Abschnitts. Mehr ...
 
- Ă–ffentliche Methoden geerbt von Waitingroom
virtual ~Waitingroom ()
 Destruktor. Mehr ...
 
virtual void remove (Thread *customer)
 Mit dieser Methode kann der angegebene Thread customer vorzeitig aus dem Wartezimmer entfernt werden. Mehr ...
 
- Ă–ffentliche Methoden geerbt von Queue< Thread >
 Queue ()
 Der Konstruktor initialisiert die Liste als leere Liste.
 
void enqueue (Thread *item)
 Das Listenelement item wird an das Ende der Liste angefĂŒgt. Mehr ...
 
Threaddequeue ()
 Liefert das erste Element der Liste und entfernt es gleichzeitig aus dieser. Mehr ...
 
Iterator begin ()
 
Iterator end ()
 
Threadremove (Thread *item, bool(*cmp)(Thread *, Thread *)=[](Thread *a, Thread *b) {return a==b;})
 Mit dieser Methode kann das angegebene Element item aus der Liste entfernt werden, unabhĂ€ngig von seiner Position dort. Verglichen werden die Pointer-Adressen, optional kann eine Vergleichsfunktion angegeben werden. Die Standardvergleichsfunktion ist ein C++11 Lambda Ausdruck, der auf Pointer-Gleichheit prĂŒft. Mehr ...
 
void insert_first (Thread *item)
 FĂŒgt das item am Anfang der Liste ein. Mehr ...
 
void insert_after (Thread *old_item, Thread *new_item)
 FĂŒgt das Element new_item hinter dem Element old_item in die Liste ein. Mehr ...
 
Threadfirst ()
 Liefert das erste Element der Liste, ohne es zu entfernen. Mehr ...
 
Threadnext (Thread *o)
 Liefert das nĂ€chste Element der Liste fĂŒr ein gegebenes Element.
 

Weitere Geerbte Elemente

- Ă–ffentliche, statische Methoden geerbt von Queue< Thread >
static QueueLink< Thread > * get_node (Thread *o)
 Gibt einen Zeiger auf das QueueLink-Element innerhalb des Argument-Objektes zurĂŒck. Mehr ...
 

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

◆ Semaphore()

Semaphore::Semaphore ( int  c)
inline

Der Konstruktor initialisiert den SemaphorzÀhler mit dem angegebenen Wert c.

Parameter
cInitaler ZĂ€hlerwert des Semaphors

Dokumentation der Elementfunktionen

◆ p()

void Semaphore::p ( )

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.

◆ v()

void Semaphore::v ( )

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.


Die Dokumentation fĂŒr diese Klasse wurde erzeugt aufgrund der Dateien: