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つのモデルの生産者の消費者モデルの詳細は、小編集者が皆さんに提供しているすべての内容です。参考にしていただきたいです。どうぞよろしくお願いします。