생성기와 같은 개체가 없다고 가정하면 이 간단한 "생산자-소비자" 모델을 어떻게 구현합니까?
가져오기 시간
def producer():
pro_list = []
for i in range(10000):
인쇄 "Baozi %s 만들기" %(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 "%s 사람이 %s 빵을 먹었습니다" %( index, stuffed_bun)
pro_list = producer()
consumer(pro_list)
위의 생산자 및 소비자 모델은 심각한 문제를 안고 있습니다. 즉, 극도로 비효율적이며, " 생산' 과정에서 소비자는 빵을 모두 먹기 전에 빵이 모두 생산될 때까지 기다려야 합니다. 이 모델은 비효율적이고 불합리합니다.
효율성을 높이려면 생산 프로세스를 수정해야 합니다. 생산과 소비 프로세스는 두 개의 독립적인 개체여야 하며 생산과 소비는 "동시에" 작동해야 합니다.
가져오기 시간
def Consumer(name):
print '나는 %s, 빵을 먹을 준비가 되었습니다' %(name)
while True :
stuffed_bun = Yield
time.sleep(1)
off 's ' s ' s ‐ ‐ ‐ % ~ %s ~ %(이름, stuffed_bun )
def producer():
p1 = 소비자("suhaozhi")
p2 = 소비자("ayumi")
p1.next( ) # 다음 메서드를 실행한 후 무한 루프가 시작됩니다.
p2.next()
for i in range(10):
time.sleep(1)
p1.send("Bun %s" %(i)) # send를 통해 Yield에 값을 할당하면 Yield는 stuffed_bun에 값을 할당합니다
p2.send("Bun %s " %(i))
제작자()
위 내용은 Python 생성기를 사용하여 생산자-소비자 모델을 구현하는 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!