ジェネレーターのようなオブジェクトが存在しないと仮定すると、この単純な「プロデューサー/コンシューマー」モデルを実装するにはどうすればよいでしょうか? Iimport time
defProducer ():
Pro_List = []
for I in Range (10000):
Print "Bun %S to make ing" %(i)
time.sleep (0.5)
pro_list.append("Bun %s" %i)
アウト アウト オフアウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウトpro_list の buns" %(index, Staffed_bun)
pro_list =Producer()
consumer(pro_list)
上記の生産者と消費者モデルには、効率が非常に低いという深刻な問題があり、「本番」ではその過程で、消費者はパンがすべて生産されるまで待たなければならず、このモデルは非効率的で不合理です。
効率を向上させたい場合は、生産プロセスと消費プロセスを 2 つの独立したエンティティとし、生産と消費が「同時」に動作する必要があります。
インポート時間
def Consumer(name):
print '私は%sです、パンを食べる準備ができています'%(name)
while True:
stuffed_bun = yield
time.sleep(1)
S Print "%s は%s を食べるのがとても幸せです"%(name,stuffed_bun) Def プロデューサー (): P1 = 消費者 ("Suhaozhi") P2 = 消費者 ("Ayumi") p1.next () #次のメソッド実行後、無限ループが始まります p2.next() for i in range(10): time.sleep(1) p1.send("Baozi %s" % (i)) #send を通じて yield に値を割り当て、yield はその値をstuffed_bun p2.send("Bun %s" %(i))Producer()以上がPythonジェネレータを使った生産者消費者モデルの実装方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。