iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python同步方法怎么变为异步方法
  • 104
分享到

Python同步方法怎么变为异步方法

2023-06-29 23:06:36 104人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本文小编为大家详细介绍“python同步方法怎么变为异步方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python同步方法怎么变为异步方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。背景在我们平时的Fas

本文小编为大家详细介绍“python同步方法怎么变为异步方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python同步方法怎么变为异步方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

背景

在我们平时的Fastapi工作中,经常会用到一些异步的操作,为了保持一致,我们一般会编写配套的异步代码。

但如果我们提供了类似jmeter Beanshell的可执行代码的功能给用户,那用户还能给你编写异步代码吗?那显然是不可能的事情。

还有一种情况,当我们引入第三方包,比如一些oss的库,里面天然是同步方法,有内置的requests请求,你想不阻塞整个fastapi服务,也是需要将他们异步化的。

怎么做?

这块先给我点时间去调研,我暂时还没有完全玩明白里面的内容。初步的设想是通过loop.run_in_executor执行同步代码,让他超乎三界之外,不让其阻塞事件循环。

由于还不是很确定,所以会在后面理解清楚了补充进来。那就没有现成的方案吗?答案是有的,想做这件事情的,不只是我哦!

为此我调研了几个库,它们都能很好地解决这个问题。下面我们来一一介绍。

Asyncer

这是大名鼎鼎的FastApi的作者,休闲娱乐的时候写的一款工具,它不仅可以把同步代码异步化,还可以把异步代码同步化,我们来看看介绍。

Python同步方法怎么变为异步方法

简单看下,上面的同步方法(内部用了sleep)在asyncify的包裹下,变成了awaitable的方法,即异步化。不过由于我没有真实使用,看在作者的面上,给个推荐。

Anyio.run,因为这个库基于AnyIO而编写的(又是个奇怪的知识点),我想应该和asyncio.run差不多疗效。

总之,既然作者的介绍是符合我们预期的,我们就推荐一下。

pip install asyncer

awaitable

这个库挺不错的,是一个乌拉老哥写的。里面充斥着我看不懂的俄语注释,但我试过功能比较完善,也很容易上手,不信咱们看看:

  • 安装

pip install awaits
  • 使用

Python同步方法怎么变为异步方法

和上面的区别在于,他只是把同步方法装饰起来,就可以当异步方法用了,是不是非常神奇!

测试过,疗效不错。因为它也具备异步方法的其他特性,比如取消。具体可以参考下我对下面那个库介绍的图片示例代码。

aioify

这个是我接触过的第一个同步转异步的库,为此我还为它提过issue。图里面是我测试一个同步方法异步化以后,能不能做取消类似的操作。这个是我用来判断它是否阻塞的一个因素。

Python同步方法怎么变为异步方法

最开始我是发现,如果遇到time.sleep这样的同步方法,这个方法似乎没有起到作用,也就是依旧会阻塞,后面这个库的作者给我答复,大意是重新搞了一下,我可以按照预期去做了。不过我现在还没有尝试过,试着阅读过源码,无疾而终了。

pip install aioify

读到这里,这篇“Python同步方法怎么变为异步方法”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网Python频道。

--结束END--

本文标题: Python同步方法怎么变为异步方法

本文链接: https://www.lsjlt.com/news/326838.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python同步方法怎么变为异步方法
    本文小编为大家详细介绍“Python同步方法怎么变为异步方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python同步方法怎么变为异步方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。背景在我们平时的Fas...
    99+
    2023-06-29
  • Python同步方法变为异步方法的小技巧分享
    目录背景怎么做?Asyncerawaitableaioify总结背景 在我们平时的FastApi工作中,经常会用到一些异步的操作,为了保持一致,我们一般会编写配套的异步代码。 但如果...
    99+
    2024-04-02
  • java异步转同步的方法是什么
    Java中实现异步转同步的方法有多种,下面列举了几种常用的方法。 使用CountDownLatch: CountDownLatch...
    99+
    2023-10-24
    java
  • Python异步方法怎么使用
    本篇内容介绍了“Python异步方法怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!为什么要异步编程...
    99+
    2024-04-02
  • 微信小程序中如何使用Async-await方法异步请求变为同步请求方法
    这篇文章给大家分享的是有关微信小程序中如何使用Async-await方法异步请求变为同步请求方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。微信小程序中有些 Api 是异步的,...
    99+
    2024-04-02
  • JavaScript异步操作同步执行的方法
    本文小编为大家详细介绍“JavaScript异步操作同步执行的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript异步操作同步执行的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深...
    99+
    2024-04-02
  • Unity同步/异步调用Android的方法实例
    目录1 Unity如何使用Android插件2 同步方法如何调用2.1 例子12.2 例子23 异步方法如何调用3.1 Android端3.1.1 添加依赖3.1.2 代码逻辑3.2...
    99+
    2024-04-02
  • Java中异步转同步的方法有哪些
    今天小编给大家分享一下Java中异步转同步的方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、问题应用场景应用中通...
    99+
    2023-07-02
  • golang异步方法
    在现代编程语言中,异步编程是一种非常流行的技术。在 golang 中,异步方法可以大幅改善应用程序的性能,特别是在高流量的网络应用中表现尤为突出。在本文中,我们将介绍 golang 中的异步方法及其使用。Golang 是一种高效的编程语言,...
    99+
    2023-05-16
  • 详解Java中异步转同步的六种方法
    目录一、问题应用场景二、分析三、实现方法1.轮询与休眠重试机制2.wait/notify3.Lock Condition4.CountDownLatch5.CyclicBarrier...
    99+
    2024-04-02
  • Golang函数的同步和异步的实现方法
    Golang是一种支持并发编程的高级编程语言,它提供了丰富的并发编程机制和语法特性,方便开发者实现复杂的多线程或多协程程序。其中,同步和异步是并发编程中常用的两种方式,本文将介绍Golang函数的同步和异步的实现方法及其使用场景。一、同步函...
    99+
    2023-05-18
    异步 同步 Golang函数
  • python同步赋值的互换变量方法是什么
    Python中互换两个变量的值有多种方法,其中一种常见的方法是使用同步赋值方式。同步赋值可以同时给多个变量赋值,可以使用多个变量交换...
    99+
    2023-09-06
    python
  • Java同步方法怎么实现
    本篇内容主要讲解“Java同步方法怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java同步方法怎么实现”吧!  常用的同步方法是采用信号或加锁机制,确保资源在任意时刻至多被一个线程访问...
    99+
    2023-06-02
  • c#异步方法怎么调用
    在C#中调用异步方法有以下几种方式: 使用await关键字:在异步方法前加上async关键字,然后在调用该异步方法时使用await...
    99+
    2024-04-02
  • Promise和Generato中如何用同步方法写异步JavaScript
    这篇文章给大家介绍Promise和Generato中如何用同步方法写异步JavaScript,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。最近在写一个自己的网站的时候(可以观摩一下~C...
    99+
    2024-04-02
  • React组件的创建与state同步异步方法是什么
    这篇文章主要介绍“React组件的创建与state同步异步方法是什么”,在日常操作中,相信很多人在React组件的创建与state同步异步方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”React组件...
    99+
    2023-07-05
  • python异步回调的方法是什么
    在Python中,可以使用以下几种方法实现异步回调:1. 使用asyncio模块:asyncio是Python标准库中的异步编程框架...
    99+
    2023-09-22
    python
  • Javasynchronized同步方法详解
    目录1. synchronized 同步方法2. synchronized 方法将对象作为锁3. 多个锁对象4. 如果同步方法内的线程抛出异常会发生什么?5. 静态的同步方法总结面试...
    99+
    2024-04-02
  • 异步回调--BeginInvoke方法
    BeginInvoke方法是用于异步调用委托的一种方式。它是在.NET Framework中定义的委托的一个方法,用于在另一个线程上...
    99+
    2023-09-28
    异步回调
  • Python中怎么实现同步和异步
    Python中怎么实现同步和异步,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、同步与异步#同步编程(同一时间只能做一件事,做完了才能做下一件事情) ...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作