首頁  >  文章  >  後端開發  >  什麼是python中的協程? (實例解析)

什麼是python中的協程? (實例解析)

乌拉乌拉~
乌拉乌拉~原創
2018-08-23 17:42:001968瀏覽

在以下的文章之中我們來了解一下什麼是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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn