協程
協程是一種允許在特定位置暫停或恢復的子程式——這一點和生成器相似。但和生成器不同的是,寫成可以控制子程式暫停之後**的走向,而生成器僅能被動的將控制權交還給呼叫者。
練習1:
假設有兩個子程式main和printer。printer是乙個死迴圈,等待輸入、
加工並輸出結果。main作為主程式,不時地向printer傳送資料。
加工: [1] text
[2] text
這應該怎麼實現呢?
defprinter
(): counter = 1
while
true:
text = yield
print('[%d] %s' %(counter, text))
counter += 1
defmain
(): p = printer()
next(p)
# p.__next__()
for i in range(10):
p.send('hi')
p.send('hello python')
p.send('hello gcc')
main()
Python學習筆記 協程
二十 協程 協程,又稱微執行緒,纖程,coroutine 子程式 又稱為函式 在所有語言中都是層級呼叫 a呼叫b b呼叫c c返回b b 返回 a 所以子程式呼叫是通過棧實現的 乙個執行緒就是執行乙個子程式 子程式呼叫總是乙個入口 一次返回 呼叫順序是明確的 而協程的呼叫和子程式不同 協程看上去也是...
Python 學習筆記 協程
python裡面控制併發,除了多執行緒和多程序,還可以使用協程 coroutine 他是在乙個執行緒內通過程式設計師人為的指定來進行切換 例1 通過switch 可以人為來回切換到另外乙個函式 當所有函式執行完畢,最後輸出print 10 usr bin env python coding utf ...
Python學習筆記 協程
協程 為非搶占式多工產生子程式的計算機元件,協程允許不同入口點在不同位置暫停或開始執行程式 從技術角度上講,是乙個可以暫停執行的函式,生成器 實現 1.yield返回 2.send呼叫 協程的四個狀態 inspect.getgeneratorstate 函式確定,該函式會返回下述字串的乙個 gen ...