操作系統OS,Python - 協程(Coroutine)
阿新 • • 發佈:2018-04-25
while IT yield tin 支持 int urn .net cin
留坑
例子1. 用協程實現生產者,消費者模型
- Python對協程的支持是通過generator實現的。
- 參考:https://blog.csdn.net/pfm685757/article/details/49924099
- 參考:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432090171191d05dae6e129940518d1d6cf6eeaaa969000
"""
1. 用協程實現消費者生產者模型
2. Python對協程的支持是通過generator實現的
3. 有yield的話,就是generator
"""
def consumer():
r = ‘‘
while True:
# n為send過來的值
# yield類似於斷點,有兩個作用。
# 1. 生成值
# 2. 在這裏斷點,交出控制權。
n = yield r
if not n:
return
print(‘[CONSUMER] Consuming %s...‘ % n)
r = ‘200 OK‘
def produce(c):
#start generator with None
c.send(None)
n = 0
while n < 5:
n = n + 1
print(‘[PRODUCER] Producing %s...‘ % n)
#啟動生成器,並附帶一個值,r接收yield生成的值
r = c.send(n)
print(‘[PRODUCER] Consumer return: %s‘ % r)
c.close()
c = consumer()
produce(c)
操作系統OS,Python - 協程(Coroutine)