内容推荐 如果你是那些被asyncio异步特性的复杂度所劝退的Python开发者之一的话,那么是时候需要重新审视一下了。异步的复杂性,旨在它需要同时解决框架和终端开发者层面面临的并发网络编程问题。你需要考虑的特性功能只是整个anyncio API很小的一个子集,但是选对正确的功能仍然是一件棘手的事情。这也是我们编写这本实用书的原因。 资深Python开发人员Caleb Hattingh将帮助你更好地理解异步构建领域的基础知识,足以开始编写简单的基于事件的程序。你会了解为什么asyncio提供了比抢占式多任务(线程)更安全的替代方案,以及异步API如何通过简单的方法就可以支持数千个同时套接字连接的。 从并发网络编程场景,对异步和多线程进行全面对比。 进行asyncio代码的实战演练,提供包括使用基于事件的编程来实现循环等快速入门指南。 了解面向终端开发者和框架开发者之间异步特性的区别。 了解asyncio的新async/await语言语法,包括协程和任务以及future API。 获取一些流行asyncio兼容的第三方库的详细案例研究(带代码)。 作者简介 凯莱布·哈廷拥有20多年的编程经验,擅长Python。他对于编码充满热情,为化学工程、客户关系管理(CRM)软件、酒店业、GPS追踪、自然语言处理等项目编写过软件。他拥有化学工程硕士学位。 目录 第1章 什么是异步 1.2 结语 1.3 Asyncio试图解决什么问题? 第2章 关于线程的真相 2.1 线程的优势 2.2 线程的缺点 2.3 案例研究:机器人和餐具 第3章 asyncio演练 3.1 快速入门 3.2 异步之塔 3.3 协程 3.3.1 新关键词:asyncdef 3.3.2 新的await关键字 3.4 事件循环 3.5 任务和期望 3.6 异步上下文管理器:asyncwith 3.7 异步迭代器:asyncfor 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 案例研究:HelloWorld 4.4.2 案例研究:爬取新闻网站 4.5 ZeroMQ 4.5.1 案例研究:多个套接字 4.5.2 案例研究:应用性能监控 4.6 asyncpg和Sanic 4.7 其他异步库和资源 第5章 总结 附录A Python中异步特性的发展简史 附录B 补充材料 |