Python 의 두 가지 모델 의 생산자 소비자 모델 에 대한 상세 한 설명

첫 번 째 queue 대기 열 사용:

#                      
#        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()
yield 협정 방법 을 사용 하여 생산자 와 소비 자 를 실현 한다.

#       ,        ,         ,
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 의 두 가지 모델 의 생산자 소비자 모델 에 대한 상세 한 설명 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 에 게 참고 가 되 고 저희 도 많이 응원 해 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기