Python協程的使用
阿新 • • 發佈:2017-11-16
turn 裝飾器 spa pytho fun con close pri produce
import time #使用裝飾器測試協程的運行時間 def func(fun): def wapper(*args,**kwargs): start=time.time() fun(*args,**kwargs) end=time.time() print(end-start) return wapper #生產者消費者模式 def consumer(): r = ‘‘ while True: n = yield r if not n:return print(‘[CONSUMER] Consuming %s...‘ % n) r = ‘200 OK‘ @func def produce(c): c.send(None) n = 0 while n < 5: n = n + 1 print(‘[PRODUCER] Producing %s...‘ % n) r = c.send(n) print(‘[PRODUCER] Consumer return: %s‘ % r) c.close() c= consumer() produce(c)
協程不是多線程的一種,它只是在一個線程內切換不同的函數去執行,這樣就可以節省線程切換的時間,是程序執行效率大大提高。
Python協程的使用