在以下的文章之中我們來了解一下什麼是python中的協程。了解python協程的相關知識,以及協程在python程式設計之中能起到什麼樣的作用。
python協程
線程和進程的操作是由程式觸發系統接口,最後的執行者是系統;協程的操作則是程式設計師。
協程存在的意義:對於多執行緒應用,CPU透過切片的方式來切換執行緒間的執行,執行緒切換時需要耗時(儲存狀態,下次繼續)。協程,則只使用一個線程,在一個線程中規定某個程式碼區塊執行順序。
協程的適用場景:當程式中存在大量不需要CPU的操作時(IO),適用於協程;
event loop是協程執行的控制點, 如果你希望執行協程, 就需要用到它們。
event loop提供如下的特性:
註冊、執行、取消延時呼叫(非同步函數)
建立用於通訊的client和server協定(工具)
創建和別的程式通訊的子程序和協定(工具)
把函數呼叫送入執行緒池中
下面我們來舉個例子:
協程實例
import asyncio asyncdef cor1(): print("COR1 start") await cor2() print("COR1 end") asyncdef cor2(): print("COR2") loop = asyncio.get_event_loop() loop.run_until_complete(cor1()) loop.close()
最後三行是重點。
asyncio.get_event_loop() : asyncio啟動預設的event loop
run_until_complete() : 這個函數是阻斷執行的,並且知道所有的非同步函數執行完成,
##close () : 關閉event loop。 以上就是本篇文章所講述的所有內容,這篇文章主要介紹了python協程的相關知識,希望你能藉助資料從而理解上述所說的內容。希望我在這片文章所講述的內容能夠對你有幫助,讓你學習python更加輕鬆。
更多相關知識,請造訪php中文網Python教學欄位。
以上是什麼是python中的協程? (實例解析)的詳細內容。更多資訊請關注PHP中文網其他相關文章!