欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python同步方法變?yōu)楫惒椒椒ǖ男〖记煞窒?/h1>
 更新時間:2022年04月11日 17:07:38   作者:米洛丶  
同步和異步關(guān)注的是消息通信機(jī)制,下面這篇文章主要給大家介紹了關(guān)于Python同步方法變?yōu)楫惒椒椒ǖ南嚓P(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

背景

在我們平時的FastApi工作中,經(jīng)常會用到一些異步的操作,為了保持一致,我們一般會編寫配套的異步代碼。

但如果我們提供了類似jmeter BeanShell的可執(zhí)行代碼的功能給用戶,那用戶還能給你編寫異步代碼嗎?那顯然是不可能的事情。

還有一種情況,當(dāng)我們引入第三方包,比如一些oss的庫,里面天然是同步方法,有內(nèi)置的requests請求,你想不阻塞整個fastapi服務(wù),也是需要將他們異步化的。

怎么做?

這塊先給我點時間去調(diào)研,我暫時還沒有完全玩明白里面的內(nèi)容。初步的設(shè)想是通過loop.run_in_executor執(zhí)行同步代碼,讓他超乎三界之外,不讓其阻塞事件循環(huán)。

由于還不是很確定,所以會在后面理解清楚了補(bǔ)充進(jìn)來。那就沒有現(xiàn)成的方案嗎?答案是有的,想做這件事情的,不只是我哦!

為此我調(diào)研了幾個庫,它們都能很好地解決這個問題。下面我們來一一介紹。

Asyncer

先上地址: asyncer.tiangolo.com/

這是大名鼎鼎的FastApi的作者,休閑娛樂的時候?qū)懙囊豢罟ぞ?,它不僅可以把同步代碼異步化,還可以把異步代碼同步化,我們來看看介紹。

簡單看下,上面的同步方法(內(nèi)部用了sleep)在asyncify的包裹下,變成了awaitable的方法,即異步化。不過由于我沒有真實使用,看在作者的面上,給個推薦。

AnyIO.run,因為這個庫基于AnyIO而編寫的(又是個奇怪的知識點),我想應(yīng)該和asyncio.run差不多療效。

總之,既然作者的介紹是符合我們預(yù)期的,我們就推薦一下。

pip install asyncer

awaitable

這個庫挺不錯的,是一個烏拉老哥寫的。里面充斥著我看不懂的俄語注釋,但我試過功能比較完善,也很容易上手,不信咱們看看:

  • 安裝
pip install awaits
  • 使用

和上面的區(qū)別在于,他只是把同步方法裝飾起來,就可以當(dāng)異步方法用了,是不是非常神奇!

我測試過,療效不錯。因為它也具備異步方法的其他特性,比如取消。具體可以參考下我對下面那個庫介紹的圖片示例代碼。

aioify

這個是我接觸過的第一個同步轉(zhuǎn)異步的庫,為此我還為它提過issue。圖里面是我測試一個同步方法異步化以后,能不能做取消類似的操作。這個是我用來判斷它是否阻塞的一個因素。

最開始我是發(fā)現(xiàn),如果遇到time.sleep這樣的同步方法,這個方法似乎沒有起到作用,也就是依舊會阻塞,后面這個庫的作者給我答復(fù),大意是重新搞了一下,我可以按照預(yù)期去做了。不過我現(xiàn)在還沒有嘗試過,試著閱讀過源碼,無疾而終了。

pip install aioify

最后,我仔細(xì)閱讀了awaitable的源碼,比較簡短,如果有時間我會仔細(xì)講一下。更重點的是,我要去調(diào)研下開篇說的部分。大家也可以勇敢點嘗試下文中介紹的幾個庫。

總結(jié)

到此這篇關(guān)于Python同步方法變?yōu)楫惒椒椒ǖ奈恼戮徒榻B到這了,更多相關(guān)Python同步方法變異步方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python數(shù)學(xué)建模學(xué)習(xí)模擬退火算法約束條件處理示例解析

    Python數(shù)學(xué)建模學(xué)習(xí)模擬退火算法約束條件處理示例解析

    線性規(guī)劃(Linear programming),是研究線性約束條件下線性目標(biāo)函數(shù)的極值問題的優(yōu)化方法,常用于解決利用現(xiàn)有的資源得到最優(yōu)決策的問題,本文使用懲罰函數(shù)法,分析模擬退火算法處理線性規(guī)劃問題,相關(guān)內(nèi)容也適用于非線性規(guī)劃問題
    2021-10-10
  • Python3 合并二叉樹的實現(xiàn)

    Python3 合并二叉樹的實現(xiàn)

    這篇文章主要介紹了Python3 合并二叉樹的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • pytorch 數(shù)據(jù)集圖片顯示方法

    pytorch 數(shù)據(jù)集圖片顯示方法

    今天小編就為大家分享一篇pytorch 數(shù)據(jù)集圖片顯示方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • python實現(xiàn)Adapter模式實例代碼

    python實現(xiàn)Adapter模式實例代碼

    這篇文章主要介紹了python實現(xiàn)Adapter模式實例代碼,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • python在指定位置插入字符的實現(xiàn)

    python在指定位置插入字符的實現(xiàn)

    本文主要介紹了python在指定位置插入字符的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • python數(shù)據(jù)類型bytes?和?bytearray的使用與區(qū)別

    python數(shù)據(jù)類型bytes?和?bytearray的使用與區(qū)別

    本文主要介紹了python數(shù)據(jù)類型bytes?和?bytearray的使用與區(qū)別,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • python3解析庫BeautifulSoup4的安裝配置與基本用法

    python3解析庫BeautifulSoup4的安裝配置與基本用法

    簡單來說,BeautifulSoup就是Python的一個HTML或XML的解析庫,我們可以用它來方便地從網(wǎng)頁中提取數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于python3解析庫BeautifulSoup4的安裝配置與基本用法的相關(guān)資料,需要的朋友可以參考下
    2018-06-06
  • python基礎(chǔ)教程之csv格式文件的寫入與讀取

    python基礎(chǔ)教程之csv格式文件的寫入與讀取

    逗號分隔值(Comma-Separated Values,CSV,也稱為字符分隔值,分隔字符也可以不是逗號),新這篇文章主要給大家介紹了關(guān)于python基礎(chǔ)教程之csv格式文件的寫入與讀取的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • Flask之請求鉤子的實現(xiàn)

    Flask之請求鉤子的實現(xiàn)

    這篇文章主要介紹了Flask之請求鉤子的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • 利用Pandas和Numpy按時間戳將數(shù)據(jù)以Groupby方式分組

    利用Pandas和Numpy按時間戳將數(shù)據(jù)以Groupby方式分組

    這篇文章主要介紹了利用Pandas和Numpy按時間戳將數(shù)據(jù)以Groupby方式分組,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評論