1. 程式人生 > >10.4通過生成器yield實現偽並發

10.4通過生成器yield實現偽並發

Python yield 偽並發 生成器

通過生成器yield實現偽並發

可以直接作用於for循環的數據類型有以下幾種:
一類是集合數據類型,如list ,tuple,dict,string,set等;
一類是generator,包括生成器和帶yield的generator function;
這些可以直接作用於for循環的對象統稱為可叠代對象:iterable,可以使用isinstance()判斷一個對象是否是iterable對象

# -*-coding:utf-8 -*-
__date__ = ‘2018/3/18 ‘
__author__ = ‘xiaojiaxin‘
__file_name__ = ‘偽並發‘

import time

def consumer(name):
    print("%s  準備吃包子!"%name)
    while True:
        baozi=yield

        print("包子[%s]來了,被[%s]吃啦"%(baozi,name))

def producer(name):
    c=consumer("A")
    c2=consumer("B")
    c.__next__()
    c2.__next__()
    print("開始準備做包子了!")
    for i in range(10):
        time.sleep(1)
        print("做了2個包子!")
        c.send(i)
        c2.send(i)

producer("jia")

大家對內容有任何問題,歡迎留言,一定在第一時間解答,謝謝大家!

10.4通過生成器yield實現偽並發