Semaphor
In der Informatik ist ein Semaphor eine Variable, die den Zugriff auf eine oder mehrere Ressourcen steuert. Es ist ein Werkzeug, das Entwickler verwenden, um sicherzustellen, dass Funktionen nur auf gültige Daten zugreifen und zum richtigen Zeitpunkt ausgeführt werden. Ein Semaphor kann einen Deadlock oder eine Race Condition verhindern, indem er den Zugriff auf eine Ressource verweigert, wenn sie nicht verfügbar ist.
In der Programmierung gibt es zwei Haupttypen von Semaphoren: binäre und Zählsemaphoren.
Binäre Semaphoren
Ein binärer Semaphor ist eine boolesche Variable, die nur zwei mögliche Werte haben kann (0 oder 1). Er wird häufig als Sperre verwendet, um den Zugriff auf eine Funktion oder Ressource einzuschränken. Beispielsweise steuert Semaphor A die Funktion getData(). Wenn A = 0 ist, wird getData() nicht ausgeführt. Wenn A = 1 ist, wird getData() ausgeführt. Ein binärer Semaphor wird auch als Flag oder Schalter betrachtet, der entweder ein- oder ausgeschaltet ist.
Zählsemaphoren
Ein Zählsemaphor kann jede nicht negative Ganzzahl sein, die auch als ganze Zahl bezeichnet wird. Sein Wert kann abhängig von den Ergebnissen einer oder mehrerer Funktionen steigen oder fallen. Beispielsweise kann ein Zählsemaphor die Anzahl der verfügbaren Ressourcen in einem Ressourcenpool erfassen. Wenn der Semaphor häufiger dekrementiert als inkrementiert wird, erreicht er schließlich 0. Der Wert 0 zeigt an, dass keine weiteren Ressourcen verfügbar sind.
NOTE: Ein „Semaphor“ ist in der realen Welt ein Flag oder ein anderes Objekt, das verwendet wird, um aus der Entfernung ein Signal zu geben. Beispielsweise kann eine Person einen Pfahl von einem Anleger aus hochhalten, um einem Fährkapitän zu signalisieren, dass sie an Bord kommen möchte.
Testen Sie Ihr Wissen