Gelöst: Semaphor-Beispiel in Python

Letzte Aktualisierung: 09/11/2023

Das Hauptproblem mit dem Semaphor-Beispiel in Python ist, dass es nicht sehr effizient ist.

import threading 
import time 
  
# A Semaphore is a synchronization object used  
# to control access to a resource. 
  
# Create a semaphore with initial value 0 
sem = threading.Semaphore(0) 
  
# Try to acquire the semaphore 
# This will block until semaphore's value is non-zero  
sem.acquire()

# Semaphor freigeben
# Erhöhen des Wertes von semaphore um 1
sem.release()
Threading importieren – diese Zeile importiert das Threading-Modul, mit dem Sie Threads als Objekte erstellen können.
Zeit importieren – diese Zeile importiert das Zeitmodul, mit dem Sie zeitbezogene Funktionen verwenden können.
sem = threading.Semaphore(0) – diese Zeile erstellt ein Semaphore-Objekt mit einem Anfangswert von 0. Ein Semaphore ist ein Synchronisationsobjekt, das verwendet wird, um den Zugriff auf eine Ressource zu steuern.
sem.acquire () – diese Zeile versucht, das Semaphor zu erwerben, was bedeutet, dass sie blockiert, bis der Wert des Semaphors nicht Null ist (was bedeutet, dass es verfügbar ist).
sem.release() – diese Zeile gibt die Semaphore frei, erhöht also den Wert der Semaphore um 1 (macht sie wieder verfügbar).

Semaphor

Semaphore ist eine Python-Bibliothek zum Verwalten von Ressourcen wie Threads und Dateien. Es bietet eine einfache Schnittstelle zum Erstellen und Verwalten von Ressourcen sowie eine Vielzahl von APIs zum Steuern dieser Ressourcen. Semaphore kann verwendet werden, um Threads, Prozesse, Dateien oder jede andere Art von Ressource zu erstellen und zu verwalten.

Wie man eine Semaphore macht

Ein Semaphor ist eine Datenstruktur, die verwendet wird, um die Anzahl gleichzeitiger Operationen auf einer Ressource zu steuern. In Python werden Semaphoren als Objekte implementiert, die mit dem Semaphore-Modul erstellt werden können. Um ein Semaphor zu verwenden, erstellen Sie zuerst eine Instanz der Semaphor-Klasse und legen dann ihren Wert mit der Methode set() fest. Sie können dann die Methode get() verwenden, um den aktuellen Wert des Semaphors abzurufen.

Um eine Semaphore zu erstellen, müssen Sie zuerst das Semaphore-Modul importieren:

Semaphor importieren

Als nächstes müssen Sie eine Instanz der Semaphor-Klasse erstellen:

sem = semaphore.Semaphore()

Als Nächstes können Sie den Wert des Semaphors mit der Methode set() festlegen:

Halbsatz(1)

Als Nächstes können Sie die Methode get() verwenden, um den aktuellen Wert des semaphORE abzurufen:

Zusammenhängende Posts: