Pythonの二つのモデルの生産者消費者モデルについて詳しく説明します。
最初のQueキューを使用して実装されます。
#
# yield
import threading,time
import queue
q = queue.Queue(maxsize=10)
def Producer(anme):
# for i in range(10):
# q.put(' %s'%i)
count = 1
while True:
q.put(' %s'%count)
print(' ',count)
count += 1
time.sleep(1)
def Consumer(name):
# while q.qsize() >0:
while True:
print('[%s] [%s] ...'%(name,q.get()))
time.sleep(1)
p = threading.Thread(target=Producer,args=('shenchanzhe',))
c = threading.Thread(target=Consumer,args=('xiaofeizhe01',))
c1 = threading.Thread(target=Consumer,args=('xiaofeizhe02',))
p.start()
c.start()
c1.start()
ield協働の方法を使って生産者と消費者を実現する:
# , , ,
import time
#
def consumer(name):
print('%s !'%name) #
while True: # , yield
baozi = yield # baozi
print(' 【%s】 , 【%s】 '%(baozi,name))
def producer(name):
c1 = consumer('A') # c1
c2 = consumer('B')
c1.__next__() # next yield
c2.__next__()
print(' ')
for i in range(1,10):
time.sleep(1)
print(' ')
c1.send(i) # next i field , baozi=i
c2.send(i+1)
# , send yield , yield,
# producer('aea')
c = consumer('aaa') # next
c.__next__()
c.__next__()
c.__next__()
以上のPythonの2つのモデルの生産者の消費者モデルの詳細は、小編集者が皆さんに提供しているすべての内容です。参考にしていただきたいです。どうぞよろしくお願いします。