Heim >Backend-Entwicklung >Python-Tutorial >Einführung in die Methode zur Implementierung des Producer-Consumer-Modells mithilfe von Python-Generatoren
Angenommen, es gibt kein Objekt wie einen Generator. Wie implementiert man dann dieses einfache „Produzenten-Konsumenten“-Modell?
Importzeit
def Producer():
pro_list = []
für i in range(10000):
print „Baozi %s making“ %(i)
time.sleep(0.5)
pro_list.append("Baozi %s" %i)
return pro_list
def Consumer(pro_list):
für index, stuffed_bun in enumerate(pro_list):
print „Die %s Person hat das %s Brötchen gegessen“ %( index, stuffed_bun)
pro_list = Producer()
Consumer(pro_list)
Das obige Produzenten- und Konsumentenmodell weist ein ernstes Problem auf, das heißt, es ist äußerst ineffizient und während der „ Beim „Produktionsprozess“ müssen die Verbraucher warten, bis alle Brötchen produziert sind, bevor sie sie essen können. Dieses Modell ist ineffizient und unvernünftig.
Wenn Sie die Effizienz verbessern möchten, müssen Sie den Produktionsprozess ändern. Die Produktions- und Verbrauchsprozesse sollten zwei unabhängige Einheiten sein und Produktion und Verbrauch sollten „gleichzeitig“ (gleichzeitig) ablaufen.
Importzeit
def Consumer(name):
print 'Ich bin %s, bereit, Brötchen zu essen' %(name)
while True :
stuffed_bun = yield
time.sleep(1)
aus 's ' s 's ' s ‐ ‐ ‐ % zu %s zu %(name, stuffed_bun )
def Producer():
p1 = Consumer("suhaozhi")
p2 = Consumer("ayumi")
p1.next( ) # Nach der Ausführung der nächsten Methode beginnt die Endlosschleife
p2.next()
for i in range(10):
time.sleep(1)
p1.send("Bun %s" %(i)) #Weisen Sie yield über send einen Wert zu, und yield weist den Wert stuffed_bun zu
p2.send("Bun %s " %(i))
Produzent()
Das obige ist der detaillierte Inhalt vonEinführung in die Methode zur Implementierung des Producer-Consumer-Modells mithilfe von Python-Generatoren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!