商品详情
书名:Python异步编程
书号:978-7-5198-7632-6
定价:68元
作者:[澳大利亚]凯莱布·哈廷(Caleb Hattingh)
出版时间:2023-05-04
出版社:中国电力出版社
页码: 176 字数(千字):232
开本:16开 版次:1 印次:1
品牌介绍
中国电力出版社成立于 1951 年,作为中国成立最早的中央科技出版社之一,曾隶属于水利电力部、能源部、电力工业部、国家电力公司,现为国家电网公司所属的科技出版社,在电气技术专业出版领域享有极高的声誉。该社作为以图书出版为主体,音像、电子出版物、期刊、网络出版共同发展的大型出版企业,以强大的出版资源和高素质的专业队伍,致力于向读者提供包括电力工程、电气工程、建筑工程、电子技术、信息技术、外语、大中专教材、家教等学科门类齐全的权威出版物,也竭力为广大师生提供精品教材,是教育部和北京市教委规划教材的出版基地之一。
编辑推荐
一句话推荐 本书介绍了Python异步编程的基础知识,并且教你编写多任务脚本。 编辑推荐 如果你是那些被asyncio异步特性的复杂度所劝退的Python开发者之一的话,那么是时候需要重新审视一下了。异步的复杂性,旨在它需要同时解决框架和终端开发者层面面临的并发网络编程问题。你需要考虑的特性功能只是整个anyncio API很小的一个子集,但是选对正确的功能仍然是一件棘手的事情。这也是我们编写这本实用书的原因。 资深Python开发人员Caleb Hattingh将帮助你更好地理解异步构建领域的基础知识,足以开始编写简单的基于事件的程序。你会了解为什么asyncio提供了比抢占式多任务(线程)更安全的替代方案,以及异步API如何通过简单的方法就可以支持数千个同时套接字连接的。 专家推荐 “在开发者的工具箱中,异步编程是其中最强大的工具之一。但是它对于新人来说也是很难掌握的知识。本书将为你揭开Python异步编程的神秘面纱,并且教你编写多任务脚本。” ——Charles Givre 数据科学家,摩根大通
产品特色
若想充分利用所有的计算资源来构建高效的软件系统,并行编程技术是不可或缺的一项技能。本书以Python为蓝本,对并行编程领域的各项技术与知识进行了广泛且深入的讲解。通过对本书的学习,读者将能够快速且准确地掌握并行编程方方面面的技能,从而应用在自己的项目开发中,提升系统运行效率。
作者介绍
Caleb Hattingh 拥有20多年的编程经验,擅长Python。他对于编码充满热情,为化学工程、客户关系管理(CRM)软件、酒店业、GPS追踪、自然语言处理等项目编写过软件。他拥有化学工程硕士学位。
内容介绍
本书的主要内容有:从并发网络编程场景,对异步和多线程进行全面对比。进行asyncio代码的实战演练,提供包括使用基于事件的编程来实现循环等快速入门指南。了解面向终端开发者和框架开发者之间异步特性的区别。了解asyncio的新async/await语言语法,包括协程和任务以及future API。获取一些流行asyncio兼容的第三方库的详细案例研究(带代码)。
本书适用于程序开发者
前言
前言 Python 3.4 引入了 asyncio 库,而Python 3.5 增加了 async 和 await 关键字,以方便使用该库实现异步编程。这些新增功能允许所谓的异步编程。 尽管 Python 社区对这些新增功能持谨慎态度,但我们将以“asyncio”作为单一名称来提及它们。该社区的一部分人认为这些新功能很复杂,难以理解,这种观点并不仅限于初学者。多位 Python 社区的著名贡献者对 asyncio API的复杂性表示担忧,教育工作者也表达了对如何向学生教授 asyncio 的最佳方式的担忧。 大多数有数年 Python 经验的开发者都曾经使用过线程,即使没有也可能遇到过阻塞。例如,如果你使用美妙的 requests 库编写程序,你会发现在执行requests.get(url) 时,程序会暂停一段时间,这就是阻塞行为。 对于一次性任务,这是合适的;但如果你需要同时获取成千上万个 URL,使用 requests 就会变得非常困难。因此,学习和使用 asyncio 的一个重要原因是为了实现大规模并发编程。此外,相对于抢占式线程,使用 asyncio 的另一个优势是更安全,因为使用 asyncio 可以更轻松地避免竞争条件错误。 本书的目标是让你基本了解为什么引入这些新功能,以及如何在自己的项目中使用它们。更具体地说,我的目标是提供以下内容: • 用于并发网络编程的异步和线程的重要比较。 • 了解新的 async/await 语言语法。 • Python 中新的 asyncio 标准库功能的概述。 • 详细、扩展的代码案例研究,展示了如何使用一些更流行的与 Asyncio 兼容的第三方库。 我们将从一个故事开始,说明从线程编程到异步编程所必须伴随的思维转变。然后,我们来看看 Python 语言本身为适应异步编程所做的改变。最后,我们将探讨最有效地使用这些新功能的一些方法。 新的 asyncio 特性不会从根本上改变你编写程序的方式。它们提供仅对特定情况有意义的特定工具;但在正确的情况下,Asyncio 非常有用。本书将探讨这些情况,以及如何使用新的异步功能来最好地处理它们。 本书中使用的约定 本书使用了以下排版约定: 斜体(Italic) 表示新术语、URL、电子邮件地址、文件名和文件扩展名。 等宽字体(Constant width) 用于程序列表,以及在段落中引用程序元素,例如变量或函数名称、数据库、数据类型、环境变量、语句和关键字。 等宽粗体(Constant width bold) 显示应由用户逐字输入的命令或其他文本。 等宽斜体(Constant width italic) 显示应替换为用户提供的值或上下文确定的值的文本。 O’Reilly 在线学习平台(O’Reilly Online Learning) 近40 年来,O’Reilly Media 致力于提供技术和商业 培训、知识和卓越见解,来帮助众多公司取得成功。 我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O’Reilly 的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及O’Reilly 和200 多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问http://oreilly.com。 如何联系我们 请向出版商提出有关本书的意见和问题: 美国: O’Reilly Media, Inc. 1005 Gravenstein Highway North Sebastopol, CA 95472 中国: 北京市西城区西直门南大街2号成铭大厦C座807室(100035) 奥莱利技术咨询(北京)有限公司 我们有本书的网页,其中列出了勘误表、示例和任何其他信息。 它可以在https://oreil.ly/using-Asyncio-in-python 访问。 发送电子邮件至 bookquestions@oreilly.com 对本书发表评论或提出技术问题。 有关我们的书籍、课程、会议和新闻的更多信息,请访问我们的网站 http://www.oreilly.com。 我们的Facebook:http://facebook.com/oreilly。 我们的Twitter:http://twitter.com/oreillymedia。 我们的YouTube:http://www.youtube.com/oreillymedia。 致谢 非常感谢 Ashwini Balnaves 和 Kevin Baker 完成了本书的早期草稿的审读并提供了宝贵的反馈意见。 我非常感谢 Yury Selivanov 在本书首次作为 O’Reilly报告出版时,抽出宝贵的时间来审阅本书的早期版本。 最后,我还要感谢O’Reilly 团队给予专业性编辑和排版支持。
目录
目录
前言 1
第1 章 什么是异步 5
11 ThreadBots 餐厅 5
12 结语 10
13 Asyncio 试图解决什么问题? 11
第2 章 关于线程的真相 15
21 线程的优势 16
22 线程的缺点 18
23 案例研究:机器人和餐具 21
第3 章 asyncio 演练 28
31 快速入门 29
32 异步之塔 36
33 协程 39
331 新关键词:async def 40
332 新的 await 关键字 43
34 事件循环 46
35 任务和期望 49
36 异步上下文管理器:async with 56
37 异步迭代器:async for 61
38 使用异步生成器使代码更简单 65
39 异步推导 66
310 优雅的关闭和启动 69
3101 Gather() 中的 return_exceptions=True 是什么? 74
3102 信号 76
3103 在关闭期间等待执行程序 82
第4 章 20 个你没有使用过的 asyncio 库 88
41 Streams ( 标准库) 89
411 案例研究:消息队列 89
412 案例研究:改进消息队列 98
42 Twisted 103
43 Janus 队列 106
44 aiohttp 108
441 案例研究:Hello World 108
442 案例研究:爬取新闻网站 109
45 ZeroMQ 114
451 案例研究:多个套接字 115
452 案例研究:应用性能监控 119
46 asyncpg 和Sanic 128
47 其他异步库和资源 146
第5 章 总结 149
附录A Python 中异步特性的发展简史 151
附录B 补充材料 155
- 有电书房
- 扫描二维码,访问我们的微信店铺