在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在Python中實(shí)現(xiàn)異步編程(附源碼)

如意 ? 來(lái)源:讀芯術(shù)微信公眾號(hào) ? 作者:讀芯術(shù)微信公眾號(hào) ? 2020-10-27 14:36 ? 次閱讀

異步編程是并行編程的一種方式。單個(gè)工作單元獨(dú)立于主應(yīng)用程序線程運(yùn)行,并通知調(diào)用線程其完成、失敗情況或進(jìn)度。下面這張圖理解起來(lái)會(huì)更直觀一些:

在Python中實(shí)現(xiàn)異步編程(附源碼)

同步vs異步

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

而對(duì)于異步編程來(lái)說(shuō),請(qǐng)求1被發(fā)出后,無(wú)需等響應(yīng)1便可直接發(fā)出請(qǐng)求2。兩個(gè)請(qǐng)求完成后得到兩個(gè)響應(yīng)。簡(jiǎn)單地說(shuō)就是請(qǐng)求1和請(qǐng)求2是并行處理的,不等前一個(gè)請(qǐng)求的響應(yīng)便提出新的請(qǐng)求。

簡(jiǎn)言之,只要打開(kāi)任務(wù)管理器(macOS中的活動(dòng)監(jiān)視器)就能看到多個(gè)應(yīng)用程序同步運(yùn)行;或者一個(gè)Python Shell在兩個(gè)不同的終端窗口中運(yùn)行。專業(yè)術(shù)語(yǔ)叫做多進(jìn)程(MultiProcessing),顧名思義,即不止一個(gè)進(jìn)程在運(yùn)行。

如何在Python中進(jìn)行異步編程?

一個(gè)同步編程的示例代碼如下:

在Python中實(shí)現(xiàn)異步編程(附源碼)

以上代碼的輸出:

在Python中實(shí)現(xiàn)異步編程(附源碼)

這段代碼傳遞了for循環(huán)的范圍。執(zhí)行代碼耗時(shí)長(zhǎng)達(dá)13.843秒,因?yàn)閞1的范圍是5000,所以耗時(shí)久。現(xiàn)在的問(wèn)題是,必須先待r1任務(wù)完成,否則無(wú)法得到r2和r3。可能在得到r1之前就得到r2和r3嗎?答案是肯定的,這正是異步編程的用武之地。

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

pip install asyncio

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

在Python中實(shí)現(xiàn)異步編程(附源碼)

首先觀察該代碼的輸出,接下來(lái)討論該代碼:

在Python中實(shí)現(xiàn)異步編程(附源碼)

輸出-1

在Python中實(shí)現(xiàn)異步編程(附源碼)

輸出-2

輸出-1中首先能得到t2和t3進(jìn)程的結(jié)果,然后在輸出-2的截圖中得到了t1進(jìn)程的結(jié)果,這是異步編程的功勞。t1進(jìn)程耗時(shí)最長(zhǎng),所以它的結(jié)果最后產(chǎn)生,且t1、t2和t3進(jìn)程均并行運(yùn)行。異步編程的好處就在于不必等待任何進(jìn)程的結(jié)果,便可獲得下一個(gè)進(jìn)程的結(jié)果。

讓我們討論一下此代碼。

首先,在if __name__==“__main__”中定義了asyncio.get_event_loop(),并將這個(gè)循環(huán)作為處理循環(huán)事件的異步對(duì)象。然后創(chuàng)建一個(gè)main的例行程序,并設(shè)置條件:若main沒(méi)完成則繼續(xù)循環(huán)。每次異步,都要進(jìn)行l(wèi)oop.close()的編程,否則結(jié)果就會(huì)錯(cuò)誤或異常。

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

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

在Python中實(shí)現(xiàn)異步編程,你學(xué)會(huì)了嗎?
責(zé)編AJX

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3628

    瀏覽量

    93811
  • 異步
    +關(guān)注

    關(guān)注

    0

    文章

    62

    瀏覽量

    18070
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4799

    瀏覽量

    84813
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    Python編程語(yǔ)言可以應(yīng)用在哪些方面?

    領(lǐng)域,Python幾乎是霸主地位,將網(wǎng)絡(luò)一切數(shù)據(jù)作為資源,通過(guò)自動(dòng)化程序進(jìn)行有針對(duì)性的數(shù)據(jù)采集以及處理。從事該領(lǐng)域應(yīng)學(xué)習(xí)爬蟲策略、高性能異步IO、分布式爬蟲等,并針對(duì)Scrapy框架源碼進(jìn)行深入剖析
    發(fā)表于 02-05 17:50

    學(xué)python有哪些方向?

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

    5種Python實(shí)現(xiàn)方式詳解

    使用CPython吧。JythonJythonJVM上實(shí)現(xiàn)Python,由Java編寫。Jython將Python源碼編譯成JVM字節(jié)碼
    發(fā)表于 05-22 15:52

    為什么用python樹(shù)莓派上編程?詳解python的優(yōu)點(diǎn)

    代碼。樹(shù)莓派python編程詳解當(dāng)你創(chuàng)建一個(gè)Python程序時(shí),首先必須從編譯器的環(huán)境退出來(lái),并且打開(kāi)一個(gè)文本編輯器,如emacs或者樹(shù)莓派的Leafpad。
    發(fā)表于 05-21 08:47

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

      線性編程是最常見(jiàn)的優(yōu)化技術(shù)之一。它具有廣泛的應(yīng)用范圍,并且經(jīng)常用于運(yùn)籌學(xué),工業(yè)設(shè)計(jì),計(jì)劃等,并且還在不斷增加。Python的線性編程并沒(méi)有像機(jī)器學(xué)習(xí)那樣被大肆宣傳,但是它是可以通
    發(fā)表于 09-11 17:55

    關(guān)于《Python編程入門系列教程》說(shuō)明及教程匯總

    的初學(xué)者,也很容易上手。2、和其它編程語(yǔ)言相比,實(shí)現(xiàn)同一個(gè)功能,Python 語(yǔ)言的實(shí)現(xiàn)代碼往往是最短的。也正因?yàn)?b class='flag-5'>python的這兩大特點(diǎn)所
    發(fā)表于 06-23 10:10

    蟻群算法python編程實(shí)現(xiàn)

    本文主要介紹了Python編程實(shí)現(xiàn)蟻群算法詳解,涉及螞蟻算法的簡(jiǎn)介,主要原理及公式,以及Python
    發(fā)表于 02-02 10:36 ?7478次閱讀
    蟻群算法<b class='flag-5'>python</b><b class='flag-5'>編程</b><b class='flag-5'>實(shí)現(xiàn)</b>

    Python的asyncio怎么樣使用

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

    Python編程入門講解PPT

      Python是一種簡(jiǎn)單易學(xué),功能強(qiáng)大的編程語(yǔ)言。它有高效率的高層數(shù)據(jù)結(jié)構(gòu),能夠簡(jiǎn)單、有效地實(shí)現(xiàn)面向?qū)ο?b class='flag-5'>編程Python語(yǔ)法簡(jiǎn)潔,支持動(dòng)態(tài)
    發(fā)表于 07-08 10:43 ?35次下載
    <b class='flag-5'>Python</b><b class='flag-5'>編程</b>入門講解PPT

    蜂鳴器播放音樂(lè)設(shè)計(jì)與實(shí)現(xiàn)源碼

    蜂鳴器播放音樂(lè)設(shè)計(jì)與實(shí)現(xiàn)源碼
    發(fā)表于 04-24 11:00 ?90次下載
    蜂鳴器播放音樂(lè)設(shè)計(jì)與<b class='flag-5'>實(shí)現(xiàn)</b>(<b class='flag-5'>附</b><b class='flag-5'>源碼</b>)

    淺析同步與異步Python的區(qū)別與概述

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

    基于51單片機(jī)的圖書管理系統(tǒng)實(shí)現(xiàn)與設(shè)計(jì)(源碼)

    基于51單片機(jī)的圖書管理系統(tǒng)實(shí)現(xiàn)與設(shè)計(jì)(源碼)
    發(fā)表于 04-26 10:52 ?18次下載

    抽樣Python是如何實(shí)現(xiàn)

    今天來(lái)和大家聊聊抽樣的幾種常用方法,以及Python是如何實(shí)現(xiàn)的。
    的頭像 發(fā)表于 08-05 10:59 ?1225次閱讀

    怎么Python實(shí)現(xiàn)截圖功能

    操作。 今天Python實(shí)用寶典就來(lái)講講怎么Python實(shí)現(xiàn)截圖功能,以下教程默認(rèn)您已經(jīng)安裝好了Py
    的頭像 發(fā)表于 11-03 15:32 ?962次閱讀
    怎么<b class='flag-5'>在</b><b class='flag-5'>Python</b><b class='flag-5'>中</b><b class='flag-5'>實(shí)現(xiàn)</b>截圖功能
    主站蜘蛛池模板: 4444kk在线看片| 32pao强力打造免费高速高清| 一级精品视频| 午夜视频网站在线观看| 天天射天天做| 免费簧片视频| 无遮挡很污很爽很黄的网站| 美女啪啪91| 久久婷婷婷| 新网球王子u17世界杯篇免费观看| 五月天激激婷婷大综合丁香| 色欧美综合| 久久综合一| 久色tv| 欧美专区欧美吧| 日本三级黄在线观看| 在线观看黄色一级片| 四虎最新紧急入口4hu| 欧美日韩国产乱了伦| 国产一区高清| 午夜在线看片| 大黄网站在线观看| 天天色成人网| 婷婷丁香激情五月| 免费看日本黄色片| 一级片+国产| 福利盒子手机看片| 日本一区免费看| 天堂免费观看| 黄色毛片免费网站| 天天爽夜夜爽视频| 日木69xxxhd| 亚洲五月综合缴情婷婷| 欧美日本一区二区三区道| 成年片免费网址网站| 免费国产午夜高清在线视频| 中文字幕一区二区三区永久 | 夜间免费视频| 澳门久久| 最新欧美伦理网| 免费的黄视频|