友快網

導航選單

從零基礎到大神丨python進階知識:簡單講講在python中實現協程非同步的4種方

大家好,我是

楊數

Tos

,這是《從零基礎到大神》系列課程的第96篇文章,第三階段的課程:Python進階知識:簡單講講在PYthon中實現協程非同步的4種方式(上篇)。

1、程序、執行緒與協程之間的區別

程序、執行緒、協程都是計算機中常見的概念,很多人對這3個程之間的區別不太理解;

程序是佔據資源的單位,不幹活的;

執行緒是具體執行(幹活)的單位;

協程在計算機中並不是真實存在的,有點類似於演算法並不是真實存在,只是我們構造出來的邏輯;

用一個不太恰當的例子說明3個程之間的區別:

程序好比是資料夾,雖然佔據著硬碟空間,但是並沒有具體的執行功能;執行緒就是資料夾中的文件,圖片文件儲存著圖片,txt文件儲存著文字;

如果計算機是單核單執行緒的情況下,我們想開啟多個圖片或多個txt文件,在計算機內部不斷切換執行緒的這個過程(或演算法)就是協程;

2、協程相關的概念

協程函式與協程物件,在Python3。7以後的版本中,把async+def+函式名這種方式定義的函式稱為協程函式,協程函式名() 稱為協程物件;

協程函式的呼叫方式與通用函式的呼叫方式不同,函式名+括號【即:fun()】無法執行協程函式內的程式碼,需要透過事件迴圈器執行協程函式的程式碼;

3、Python中實現非同步協程的4種方式

greenlet實現、yield關鍵字實現、透過asyncio裝飾器實現、async+await關鍵字實現;

具體實現方式後面的文章詳述。

以上是本期內容,如果有表達不對的內容,歡迎您的留言、斧正,我們一起天天向上。

感謝您的閱讀,您的三連【關注、點贊、收藏】就是對我最大的支援,謝謝!

本文由楊數Tos原創,歡迎關注,帶你一起長知識。

上一篇:下載速度44mbps!馬斯克星鏈衛星網際網路服務平均下載速度達到44mbps
下一篇:華為p50真機上手:四曲面居中挖孔,自拍拍照更清晰,拍照更高畫質!