python 生成器並行運算

def consummer(name):

    while True:

        baozi = yield

        print('包子%s來啦,被%s吃了'%(baozi,name))

    return None        


c = consummer('紫星大人')

bz = '韭菜餡'

c.send(bz)   #喚醒yield並傳值

c.__next__()  #只喚醒不傳值


模擬單線程下的並行效果#實際上應該是攜程效果,比進程更小的一個單位


import time
def consummer(name):
   print('顧客%s已經做好吃包子的準備了'%name)
   while True:
       baozi = yield
       print('包子%s來啦,被%s吃了'%(baozi,name))

def producer():
   c = consummer('張三')
   c2 = consummer('李四')
   c.__next__()
   c2.__next__()
   print('廚師開始做包子啦!')
   for i in range(20,):
       time.sleep(1)
       print('生產出來2個包子')
       c.send(i)
       c2.send(i)
producer()


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章