Python异步编程
汪阳 译
出版时间:2023年04月
页数:165
“在开发者的工具箱中,异步编程是其中最强大的工具之一。但是它对于新人来说也是很难掌握的知识。本书将为你揭开Python异步编程的神秘面纱,并且教你编写多任务脚本。”
——Charles Givre
数据科学家,摩根大通
如果你是那些被asyncio异步特性的复杂度所劝退的Python开发者之一的话,那么是时候需要重新审视一下了。异步的复杂性,在于它需要同时解决框架和终端开发者层面面临的并发网络编程问题。虽然你需要考虑的特性功能只是整个anyncio API很小的一个子集,但是选对正确的功能仍然是一件棘手的事情。这也是我们编写这本实用书的原因。
资深Python开发人员Caleb Hattingh将帮助你更好地理解异步编程领域的基础知识,足以让你开始编写简单的基于事件的程序。你会了解为什么asyncio提供了比抢占式多任务(线程)更安全的替代方案,以及异步API如何通过简单的方法就可以支持数千个套接字同时连接的。
● 从并发网络编程场景,对异步和多线程进行全面对比。
● 进行asyncio代码的实战演练,提供包括使用基于事件的编程来实现循环等快速入门指南。
● 了解面向终端开发者和框架开发者之间异步特性的区别。
● 了解asyncio的新async/await语言语法,包括协程和任务以及future API。
● 获取一些流行asyncio兼容的第三方库的详细案例研究(带代码)。
- 前言
- 第1章 什么是异步
- 1.1 ThreadBots餐厅
- 1.2 结语
- 1.3 Asyncio试图解决什么问题?
- 第2章 关于线程的真相
- 2.1 线程的优势
- 2.2 线程的缺点
- 2.3 案例研究:机器人和餐具
- 第3章 asyncio演练
- 3.1 快速入门
- 3.2 异步之塔
- 3.3 协程
- 3.3.1 新关键词:async def
- 3.3.2 新的await关键字
- 3.4 事件循环
- 3.5 任务和期望
- 3.6 异步上下文管理器:async with
- 3.7 异步迭代器:async for
- 3.8 使用异步生成器使代码更简单
- 3.9 异步推导
- 3.10 优雅的关闭和启动
- 3.10.1 Gather()中的return_exceptions=True是什么?
- 3.10.2 信号
- 3.10.3 在关闭期间等待执行程序
- 第4章 20个你没有使用过的asyncio库
- 4.1 Streams (标准库)
- 4.1.1 案例研究:消息队列
- 4.1.2 案例研究:改进消息队列
- 4.2 Twisted
- 4.3 Janus队列
- 4.4 aiohttp
- 4.4.1 案例研究:Hello World
- 4.4.2 案例研究:爬取新闻网站
- 4.5 ZeroMQ
- 4.5.1 案例研究:多个套接字
- 4.5.2 案例研究:应用性能监控
- 4.6 asyncpg和Sanic
- 4.7 其他异步库和资源
- 第5章 总结
- 附录A Python中异步特性的发展简史
- 附录B 补充材料
书名:Python异步编程
译者:汪阳 译
国内出版社:中国电力出版社
出版时间:2023年04月
页数:165
书号:978-7-5198-7632-6
原版书书名:Using Asyncio in Python
原版书出版商:O'Reilly Media
Caleb Hattingh
Caleb Hattingh第一次接触Python是在1.5.2版本,从Andrew Kuchling的在线PDF笔记中学习了基础知识,并在 2001年左右开始认真使用它,也就是Python 2.0发布后不久。那是一段很有趣的时光:Caleb主要使用的编程工具是MATLAB和Delphi;在那个年代,南非上网用的网络调制解调器,工作时发出的声音依旧很吵,Java是1.3,C# 1.0还没有发布,YouTube再过四年就不会存在了。在Python中,Caleb发现了一个灵活的工具,可以使用它来解决任何问题。
为了验证这一假设,Caleb已将Python应用于各种领域,包括化学数据建模、酒店预订和CRM软件、网站、财务管理软件、化学反应器建模、燃煤动态模拟、在线学习编码培训软件、GPS跟踪软件,以及最近的软件定义网络。
Caleb已出版作品中的主题也同样不连续:这本书是他为O’Reilly撰写的第三部作品,之前的标题是Learning Cython (https://oreil.ly/7v4le)(视频)和20个你未使用(但应该)的Python库 (https://oreil.ly/3m2iq)。Caleb作品的共同主题(如果有的话)似乎是寻找复杂的概念并尝试讲解它们。我们可以在https://github.com/cjrh上联系到Caleb。
本书封面上的动物是 Hyla 属的青蛙。 Hyla 属于树蛙科 Hylidae,由分布在欧洲、北非和亚洲的 17 种蛙类组成。
这些物种中的大多数是长度不到 0.05m的小青蛙。它们的后腿比前腿长,手和脚的手指末端是粘着的圆盘。根据物种、温度、湿度和情绪的不同,肤色从明亮到橄榄绿色、灰色、棕色和黄色不等。雄性有一个声囊,可以放大它们在求偶时的叫声。这些青蛙生活在森林栖息地,在湖泊、池塘和沼泽中繁殖。它们通常的捕食对象是一些节肢动物。
所有种类的海拉都被认为是常见的,然而,它们都受到栖息地丧失和退化的潜在威胁。 O’Reilly 封面上的许多动物都濒临灭绝;所有这些对世界都很重要。
封面插图由Karen Montgomery基于English Cyclopedia的一幅黑白版画绘制。