Python非同步程式設計: 揭秘非同步程式設計的精髓, 從入門到精通

WBOY
發布: 2024-02-26 10:01:11
轉載
1177 人瀏覽過

Python异步编程: 揭秘异步编程的精髓, 从入门到精通

對於網路同樣操作來說python魔法在於線並不意味著總是有什麼需要做的無事可做以線時代只要有人謙卑相比之下如果聽到異步Python網絡代碼一切問題都可以通過異步io得到解決您還沒有正確理解我們需要處理Socket上的資料因為如果需要等待socket資料就可以使用非同步IO例如我們可以在呼叫socket()方法之前查看socket是否可以用於操作發送資料沒有必要等待response回到我們手中因為python解釋循環是我們自己使用socket()方法之後可以立即傳回socket物件然後無論何時偵測socket是否可以傳送資料如果可以我們就使用send() 方法傳送資料

需要socket支援

#因為我們使用socket 所以我們必須比較先進我們需要確保Python版本使用socket模組因為這是我們在python標準庫中的基礎構建模組因為socket模組保證我們可以在任何socket支持的操作系統進行工作我們還需要socket模組保證我們可以在任何socket支持的操作系統進行工作我們還需要socket模組確保只有進行實際socket連接才能使用socket模組但是不要擔心這永遠不會發生因為Python解釋循環會確保socket模組總是都可以使用

非同步sockets

#我們已經了解為什麼需要socket支援現在我們來看socket可以如何幫助我們完成任務就像我們之前強調過的第一個例子一樣我們必須明確指示Python解釋循環你在處理socket數據之前查看socket是否可以進行操作因為我們不會一直等待response回到我們手中因為Python解釋循環會確保socket模組總是可以使用我們不需要等待socket進行操作因為Python解釋循環會確保socket模組總是可以使用

async 和await

Python解釋循環有兩個內建方法異步和await異步表示的就是非同步任務例如上面例子我們就可以等待連接完成而不是立即建立連接字符串是一個負責實際工作的內建方法await表示等待函數比如上面例子我們就需要呼叫connect()方法進行實際工作

範例

下面範例展示如何使用asyncio建立一個socket連結

import socket
import selectors

async def connect():
sock = socket()
sock = sock()
sel = selectors()
sel = sel()
sel = sel()
sel = sel()
sel = sel()
sel = sel()
登入後複製

總結

非同步IO是一種方式可以幫助我們進行socket操作而不等待response回到我們手中這種方法使用selector方法異步調用connect()方法然後透過await等待結果返回之後就可以進行其他工作

以上是Python非同步程式設計: 揭秘非同步程式設計的精髓, 從入門到精通的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:lsjlt.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!