色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在Python中實現異步編程(附源碼)

如意 ? 來源:讀芯術微信公眾號 ? 作者:讀芯術微信公眾號 ? 2020-10-27 14:36 ? 次閱讀

異步編程是并行編程的一種方式。單個工作單元獨立于主應用程序線程運行,并通知調用線程其完成、失敗情況或進度。下面這張圖理解起來會更直觀一些:

在Python中實現異步編程(附源碼)

同步vs異步

同步編程很普遍。如圖,請求1被發出后等待響應1;一旦得到響應1就發出請求2,然后等待它的響應。在上面的代碼中,向函數傳遞參數“a”后等待函數返回更改后的值,然后再次調用以更改數字,最后再次得到響應,這就是同步編程。

而對于異步編程來說,請求1被發出后,無需等響應1便可直接發出請求2。兩個請求完成后得到兩個響應。簡單地說就是請求1和請求2是并行處理的,不等前一個請求的響應便提出新的請求。

簡言之,只要打開任務管理器(macOS中的活動監視器)就能看到多個應用程序同步運行;或者一個Python Shell在兩個不同的終端窗口中運行。專業術語叫做多進程(MultiProcessing),顧名思義,即不止一個進程在運行。

如何在Python中進行異步編程?

一個同步編程的示例代碼如下:

在Python中實現異步編程(附源碼)

以上代碼的輸出:

在Python中實現異步編程(附源碼)

這段代碼傳遞了for循環的范圍。執行代碼耗時長達13.843秒,因為r1的范圍是5000,所以耗時久。現在的問題是,必須先待r1任務完成,否則無法得到r2和r3。可能在得到r1之前就得到r2和r3嗎?答案是肯定的,這正是異步編程的用武之地。

首先用pip指令安裝異步包。

pip install asyncio

安裝后,看一下新代碼。使用異步包:

在Python中實現異步編程(附源碼)

首先觀察該代碼的輸出,接下來討論該代碼:

在Python中實現異步編程(附源碼)

輸出-1

在Python中實現異步編程(附源碼)

輸出-2

輸出-1中首先能得到t2和t3進程的結果,然后在輸出-2的截圖中得到了t1進程的結果,這是異步編程的功勞。t1進程耗時最長,所以它的結果最后產生,且t1、t2和t3進程均并行運行。異步編程的好處就在于不必等待任何進程的結果,便可獲得下一個進程的結果。

讓我們討論一下此代碼。

首先,在if __name__==“__main__”中定義了asyncio.get_event_loop(),并將這個循環作為處理循環事件的異步對象。然后創建一個main的例行程序,并設置條件:若main沒完成則繼續循環。每次異步,都要進行loop.close()的編程,否則結果就會錯誤或異常。

然后將函數定義為asyncdeffunc_name,這樣解釋器就知道函數用了異步的方法。在main()中定義了三個任務(也可稱為子例程),并使用了await函數,以便它等待三個進程結束(即使它沒有多大意義,也必須使用它)。

最后用了fun()函數。i %10000的if條件讓最大范圍的進程徐徐運行,最后得到了答案。仔細研究fun()函數并自己嘗試的話,其中的邏輯會顯得非常合理和直接。

在Python中實現異步編程,你學會了嗎?
責編AJX

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程
    +關注

    關注

    88

    文章

    3614

    瀏覽量

    93686
  • 異步
    +關注

    關注

    0

    文章

    62

    瀏覽量

    18043
  • python
    +關注

    關注

    56

    文章

    4792

    瀏覽量

    84627
收藏 人收藏

    評論

    相關推薦

    xilinx ISE 異步FIFO ip的使用、仿真及各信號的討論(圖文教程)

    全部verilog源碼)5.基于verilog的分頻器設計 (可實現任意整數分頻) (全部源碼)6. 《ZedBoard高手之路》入門篇視頻教程7. 《FPGA設計
    發表于 07-16 15:09

    Python編程語言可以應用在哪些方面?

    領域,Python幾乎是霸主地位,將網絡一切數據作為資源,通過自動化程序進行有針對性的數據采集以及處理。從事該領域應學習爬蟲策略、高性能異步IO、分布式爬蟲等,并針對Scrapy框架源碼進行深入剖析
    發表于 02-05 17:50

    python有哪些方向?

    框架源碼進行深入剖析,從而理解其原理并實現自定義爬蟲框架。4. 云計算開發Python是從事云計算工作需要掌握的一門編程語言,目前很火的云計算框架OpenStack就是由
    發表于 03-09 15:47

    5種Python實現方式詳解

    使用CPython吧。JythonJythonJVM上實現Python,由Java編寫。Jython將Python源碼編譯成JVM字節碼
    發表于 05-22 15:52

    為什么用python樹莓派上編程?詳解python的優點

    代碼。樹莓派python編程詳解當你創建一個Python程序時,首先必須從編譯器的環境退出來,并且打開一個文本編輯器,如emacs或者樹莓派的Leafpad。
    發表于 05-21 08:47

    Python的線性編程:直接教程分享

      線性編程是最常見的優化技術之一。它具有廣泛的應用范圍,并且經常用于運籌學,工業設計,計劃等,并且還在不斷增加。Python的線性編程并沒有像機器學習那樣被大肆宣傳,但是它是可以通
    發表于 09-11 17:55

    關于《Python編程入門系列教程》說明及教程匯總

    的初學者,也很容易上手。2、和其它編程語言相比,實現同一個功能,Python 語言的實現代碼往往是最短的。也正因為python的這兩大特點所
    發表于 06-23 10:10

    蟻群算法python編程實現

    本文主要介紹了Python編程實現蟻群算法詳解,涉及螞蟻算法的簡介,主要原理及公式,以及Python
    發表于 02-02 10:36 ?7462次閱讀
    蟻群算法<b class='flag-5'>python</b><b class='flag-5'>編程</b><b class='flag-5'>實現</b>

    Python的asyncio怎么樣使用

    Python異步編程功能(簡稱async)讓你可以編寫不必等待獨立任務完成就可以完成更多工作的程序。
    發表于 03-18 13:48 ?1263次閱讀

    Python編程入門講解PPT

      Python是一種簡單易學,功能強大的編程語言。它有高效率的高層數據結構,能夠簡單、有效地實現面向對象編程Python語法簡潔,支持動態
    發表于 07-08 10:43 ?35次下載
    <b class='flag-5'>Python</b><b class='flag-5'>編程</b>入門講解PPT

    蜂鳴器播放音樂設計與實現源碼

    蜂鳴器播放音樂設計與實現源碼
    發表于 04-24 11:00 ?90次下載
    蜂鳴器播放音樂設計與<b class='flag-5'>實現</b>(<b class='flag-5'>附</b><b class='flag-5'>源碼</b>)

    淺析同步與異步Python的區別與概述

    你是否聽到人們說過,異步Python代碼比普通(或同步)Python代碼更快?果真是那樣嗎?
    的頭像 發表于 04-25 13:53 ?2207次閱讀
    淺析同步與<b class='flag-5'>異步</b><b class='flag-5'>Python</b>的區別與概述

    基于51單片機的圖書管理系統實現與設計(源碼)

    基于51單片機的圖書管理系統實現與設計(源碼)
    發表于 04-26 10:52 ?18次下載

    抽樣Python是如何實現

    今天來和大家聊聊抽樣的幾種常用方法,以及Python是如何實現的。
    的頭像 發表于 08-05 10:59 ?1206次閱讀

    怎么Python實現截圖功能

    操作。 今天Python實用寶典就來講講怎么Python實現截圖功能,以下教程默認您已經安裝好了Py
    的頭像 發表于 11-03 15:32 ?938次閱讀
    怎么<b class='flag-5'>在</b><b class='flag-5'>Python</b><b class='flag-5'>中</b><b class='flag-5'>實現</b>截圖功能
    主站蜘蛛池模板: 欧美性FREE玩弄少妇| 国产精品亚洲AV毛片一区二区三区| 清晨紧湿爱运动h高h| 第一福利在线永久视频| 午夜色网站| 久久99视频免费| 999久久国产精品免费人妻| 欧美性狂猛bbbbbbxxxx| 国产91综合| 亚洲欧美激情精品一区二区| 久久香蕉电影| va亚洲va天堂va视频在线| 天天操天天干天天透| 精品国产三级a| 99re2.久久热最新地址| 色就色 综合偷拍区欧美| 国产在线精品亚洲| 中文字幕人妻无码系列第三区| 欧美肥胖女人bbwbbw视频| 国产91网站在线观看免费| 亚洲色欲色欲WWW在线丝| 免费观看亚洲视频| 国产 亚洲 另类 欧美 在线| 亚洲免费网站在线观看| 男生脱美女内裤内衣动态图| 国产av在在免费线观看美女| 亚洲色欲色欲WWW在线丝| 欧美精品成人一区二区在线观看| 国产成人综合网在线观看| 夜里18款禁用的免费B站动漫| 免费国产成人| 国产精品一库二库三库| 在线免费福利| 日韩欧美视频一区| 久九九精品免费视频| yellow免费| 亚洲精品中文字幕制| 女教师二十三岁| 国产亚洲欧洲日韩在线观看| 8090碰成年女人免费碰碰尤物| 首页 国产 亚洲 中文字幕|