大家好,我是
楊數
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原創,歡迎關注,帶你一起長知識。