python 异步处理_开始使用Python进行异步处理

本文介绍了Python异步编程的概念和用途,包括何时使用异步、异步与线程多处理的区别,以及Python中的关键字`async`和`await`。通过示例展示了如何使用异步来提高程序效率,特别是处理I/O密集型任务时的优势。最后,建议读者通过实践和学习相关库来进一步掌握Python异步编程。
摘要由CSDN通过智能技术生成

python 异步处理

异步编程(简称异步)是许多现代语言的功能,它使程序可以处理多个操作,而无需等待或挂断其中的任何一个。 这是一种有效处理网络或文件I / O等任务的明智方法,其中程序的大部分时间都花在等待任务完成上。

考虑一个打开100个网络连接的Web抓取应用程序。 您可以打开一个连接,等待结果,然后打开下一个连接并等待结果,依此类推。 程序运行的大部分时间都花在等待网络响应上,而不是在做实际的工作。

[ 同样在InfoWorld上:每个Python开发人员都有24个Python库 ]

异步为您提供了一种更有效的方法:一次打开所有100个连接,然后在返回结果时在每个活动连接之间切换。 如果一个连接没有返回结果,请切换到下一个,依此类推,直到所有连接都返回了它们的数据。

异步语法现在已成为Python的标准功能,但是习惯于一次做一件事的长期Pythonista使用者可能难以解决。 在本文中,我们将探讨异步编程如何在Python中工作以及如何使用它。

请注意,如果要在Python中使用异步,最好使用Python 3.7或Python 3.8(撰写本文时的最新版本)。 我们将使用该语言的这些版本中定义的Python异步语法和辅助函数。

何时使用异步编程

通常,使用异步的最佳时间是当您尝试执行具有以下特征的工作时:

  • 这项工作需要很长时间才能完成。
  • 延迟涉及等待I / O(磁盘或网络)操作,而不是计算。
  • 这项工作涉及一次执行许多I / O操作, 或者当您还试图完成其他任务时进行一项或多项I / O操作。

异步允许您并行设置多个任务并有效地遍历它们,而不会阻塞应用程序的其余部分。

可以很好地与异步工作的一些任务示例:

  • 网页抓取,如上所述。
  • 网络服务(例如,Web服务器或框架)。
  • 协调来自多个源的结果的程序,这些结果需要很长时间才能返回值(例如,同时进行的数据库查询)。

重要的是要注意,异步编程不同于多线程或多处理。 异步操作都在同一个线程中运行,但是它们根据需要相互转化,这使得异步处理比线程或多处理多种任务的效率更高。 (更多有关此内容。)

[ 同样在InfoWorld上:Python 3.8中最好的新功能 ]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值