久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Python的asyncio簡單介紹

 AnonymousV臉 2018-12-13

如果你來到這里,,很可能你聽說過異步,并發(fā)和并行等詞,。 在我們開始使用asyncio之前,,讓我們快速了解一些關(guān)于這些詞匯的基本知識(通過示例),以便我們有一個堅實的基礎(chǔ)來構(gòu)建它,。

并發(fā)就像在單核CPU上運行兩個線程,。 來自每個線程的指令可以交錯,但在任何給定時間,,兩個線程中只有一個正在積極地進行,。

并行性就像在多核CPU的不同內(nèi)核上同時運行兩個線程。

異步是一種更高級別的編程概念,,程序可以在其中啟動某項任務(wù),,并確定在沒有該任務(wù)的結(jié)果時,最好做其他工作而不是等待,。

為什么異步編程,?

為什么我們要編寫你說的異步程序 - 因為它可以多次提高程序的性能。 想象一下,,您有一臺運行應(yīng)用程序的核心機器,。 您收到請求,并且需要進行兩次數(shù)據(jù)庫查詢才能滿足該請求,。 每個查詢需要50毫秒的時間,。 使用同步程序,只有在完成第一個請求后才會發(fā)出第二個請求 - 總時間為100毫秒,。 使用異步程序,,您可以依次觸發(fā)兩個查詢 - 總時間為50毫秒。

ASYNCIO

Asyncio就是用Python編寫異步程序,。 Asyncio是介于Event Loop,,Tasks和Coroutines之間一個動聽的交響樂,配合的非常完美,。

事件循環(huán)

這就是使一切成為可能的原因 - 一個簡單的循環(huán),,就是這樣。 那不是那么簡單。 但這是它的工作原理,。 事件循環(huán)是交響樂的協(xié)調(diào)者,。 它一個接一個地運行任務(wù)。 在任何給定時間,,只有一個任務(wù)正在運行,。

可以想象,由于其他任務(wù)正在等待輪到他們,,因此主任務(wù)面臨很大的壓力,。 因此,當(dāng)活動任務(wù)進行阻塞調(diào)用,,說一個網(wǎng)絡(luò)請求,,并且無法進一步進展時,它會將控制權(quán)交還給事件循環(huán),,從而意識到某些其他任務(wù)可能更好地利用事件循環(huán)的時間,。 它還告訴事件循環(huán)它究竟被阻塞了什么,,這樣當(dāng)網(wǎng)絡(luò)響應(yīng)到來時,,事件循環(huán)可以考慮給它時間再次運行

協(xié)程與任務(wù)

協(xié)程是交響樂的關(guān)鍵元素。當(dāng)協(xié)程沒有任何用處時,,可以放棄對事件循環(huán)的控制,。協(xié)程是子程序概念的有狀態(tài)推廣。

子程序是一種老式方法,。調(diào)用子例程來執(zhí)行計算,。可以再次調(diào)用它,,但它不會在兩次調(diào)用之間保持狀態(tài),。每次調(diào)用都是新的,并執(zhí)行相同的計算,。

另一方面,,協(xié)程是一個可愛的小狀態(tài)小部件。它看起來像一個子程序,,但它在兩次執(zhí)行之間保持狀態(tài),。換句話說,當(dāng)協(xié)程“返回”(產(chǎn)生控制)時,,它只是意味著它已暫停其執(zhí)行(具有一些保存狀態(tài)),。因此,當(dāng)您隨后“調(diào)用”(給予控制)協(xié)程時,,可以說協(xié)程已恢復(fù)執(zhí)行(從保存狀態(tài)),。

在Python 3.5+中,協(xié)程暫停的方式是使用await關(guān)鍵字。 在協(xié)程中,,當(dāng)你等待另一個協(xié)同程序時,,你會離開事件循環(huán)并安排等待的協(xié)程立即運行。 也就是說,,等待coroutine中的other_coroutine將暫停它,,并安排協(xié)程other_coroutine立即運行。

以下是協(xié)程如何相互協(xié)作的一個非常簡單的示例(Python 3.5+),。 我們將使用預(yù)定義的協(xié)程asyncio.sleep來幫助我們模擬此示例的阻塞任務(wù),,但它可以是真實世界場景中的任何內(nèi)容,如網(wǎng)絡(luò)請求,,數(shù)據(jù)庫查詢等,。

一個更現(xiàn)實而又簡單的例子

你學(xué)會了嗎?

Python中如何使用AsyncIO異步編程呢,?本周大家一起來學(xué)習(xí),,歡迎關(guān)注公眾號!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多