Supposons qu'il n'existe pas d'objet tel qu'un générateur, alors comment mettre en œuvre ce simple modèle « producteur-consommateur » ?
temps d'importation
def producteur():
pro_list = []
pour i dans la plage (10000):
imprimer "Baozi %s making" %(i)
time.sleep(0.5)
pro_list.append("Baozi %s" %i)
return pro_list
def consumer(pro_list):
for index,stuffed_bun in enumerate(pro_list):
print "La personne %s a mangé le petit pain %s" %( index, stuffed_bun)
pro_list = producteur()
consommateur(pro_list)
Le modèle de producteur et de consommateur ci-dessus a un sérieux problème, c'est-à-dire qu'il est extrêmement inefficace, et pendant le " "de production", les consommateurs doivent attendre que tous les petits pains soient produits avant de pouvoir les manger. Ce modèle est inefficace et déraisonnable.
Si vous souhaitez améliorer l'efficacité, vous devez modifier le processus de production. Les processus de production et de consommation doivent être deux entités indépendantes. La production et la consommation doivent fonctionner « simultanément » (simultanément).
temps d'importation
def consumer(name):
imprimer 'Je suis %s, prêt à manger des petits pains' %(name)
while True :
stuffed_bun = rendement
time.sleep(1)
' ' s ' s ' s ' s t ‐ à %s à 🎜>
def producteur( ): p1 = consumer("suhaozhi") p2 = consumer("ayumi") p1.next() # Après avoir exécuté la méthode suivante, l'infini la boucle commence p2.next() pour i dans range(10): time.sleep(1) p1.send(" Bun %s" %(i)) #Attribuez une valeur à rendement via l'envoi, et rendement attribuera la valeur à stuffed_bun p2.send("Bun %s" %(i))producteur()Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!