最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

背景

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

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

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

怎么做?

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

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

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

Asyncer

先上地址: asyncer.tiangolo.com/

這是大名鼎鼎的FastApi的作者,休閑娛樂的時候寫的一款工具,它不僅可以把同步代碼異步化,還可以把異步代碼同步化,我們來看看介紹。

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

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

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

pip install asyncer

awaitable

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

  • 安裝
pip install awaits
  • 使用

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

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

aioify

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

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

pip install aioify

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

總結

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

相關文章

  • 基于Python實現智能停車場車牌識別計費系統(tǒng)

    基于Python實現智能停車場車牌識別計費系統(tǒng)

    這篇文章主要為大家介紹了如何利用Python實現一個智能停車場車牌識別計費系統(tǒng),文中的示例代碼講解詳細,感興趣的小伙伴可以動手嘗試一下
    2022-04-04
  • Python裝飾器的應用場景代碼總結

    Python裝飾器的應用場景代碼總結

    這篇文章主要介紹了Python裝飾器的應用場景,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Python獲取網頁上圖片下載地址的方法

    Python獲取網頁上圖片下載地址的方法

    這篇文章主要介紹了Python獲取網頁上圖片下載地址的方法,涉及Python操作正則表達式匹配字符串的技巧,需要的朋友可以參考下
    2015-03-03
  • Python中accumulate函數的用法詳解

    Python中accumulate函數的用法詳解

    累積(accumulate)函數是Python標準庫itertools中的一個強大工具,用于對可迭代對象進行累積操作,下面我們將深入探討accumulate函數的用法,感興趣的小伙伴可以了解下
    2023-11-11
  • python-opencv顏色提取分割方法

    python-opencv顏色提取分割方法

    今天小編就為大家分享一篇python-opencv顏色提取分割方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 常見的Python異常及處理方法總結

    常見的Python異常及處理方法總結

    本文主要介紹了Python中常見異常,什么是異常,回溯信息,簡單的異常處理格式,異常嵌套以及異常處理注意事項與建議,有需要的朋友可以借鑒參考下
    2021-09-09
  • 正確理解python中的關鍵字“with”與上下文管理器

    正確理解python中的關鍵字“with”與上下文管理器

    這篇文章主要介紹了關于python中關鍵字"with"和上下文管理器的相關資料,文中介紹的非常詳細,相信對大家學習或者使用python具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-04-04
  • Python中使用第三方庫xlutils來追加寫入Excel文件示例

    Python中使用第三方庫xlutils來追加寫入Excel文件示例

    這篇文章主要介紹了Python中使用第三方庫xlutils來追加寫入Excel文件示例,本文直接給出追加寫入示例和追加效果,需要的朋友可以參考下
    2015-04-04
  • Python實現針對給定字符串尋找最長非重復子串的方法

    Python實現針對給定字符串尋找最長非重復子串的方法

    這篇文章主要介紹了Python實現針對給定字符串尋找最長非重復子串的方法,涉及Python針對字符串的遍歷、排序、計算等相關操作技巧,需要的朋友可以參考下
    2018-04-04
  • numpy.std() 計算矩陣標準差的方法

    numpy.std() 計算矩陣標準差的方法

    今天小編就為大家分享一篇numpy.std() 計算矩陣標準差的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07

最新評論

麻栗坡县| 太和县| 万全县| 和林格尔县| 灵璧县| 乌拉特中旗| 车险| 镇宁| 定襄县| 武义县| 东山县| 余庆县| 黎城县| 万荣县| 阿尔山市| 来凤县| 十堰市| 获嘉县| 大丰市| 浏阳市| 壶关县| 永宁县| 新乡县| 左权县| 麦盖提县| 泾阳县| 尤溪县| 河东区| 紫阳县| 黔江区| 绥中县| 清远市| 绥江县| 长寿区| 金阳县| 乌兰浩特市| 旬阳县| 新绛县| 无为县| 图们市| 得荣县|