Python asyncio并发编程
通过asyncio实现并发编程,使用一个贯穿全书的示例,介绍如何使用asyncio 在服务器与客户端之间进行并发通信。源代码下载地址见书封底二维码。

作者:[英]马修·福勒(Matthew Fowler)著 殷海英 译

定价:128元

印次:1-3

ISBN:9787302622833

出版日期:2023.01.01

印刷日期:2025.05.08

图书责编:王军

图书分类:零售

电子书
在线购买
分享
内容简介
作者简介
前言序言
资源下载
查看详情 查看详情 查看详情

标准Python程序很容易过载,从而出现慢如龟爬的情况。asyncio库正是为了解决这些问题而构建的,它简化了任务的划分和调度。asyncio可无缝地同时处理多个操作,使应用程序疾如闪电,且具有扩展性。   《Python asyncio并发编程》在大量示例的引导下,介绍异步、并行和并发编程。将难理解的并发内容分解为简明易懂的流程图,使读者可轻松了解任务的运行方式。在本书中,读者将学习如何使用asyncio来突破Python的限制,从而加快Web服务器和微服务的运行速度。读者甚至可将asyncio与传统的多处理技术结合起来,以大幅提升性能。 主要内容 ● 通过aiohttp构建支持并发Web请求的Web API ● 同时运行海量SQL查询 ● 创建一个可并行处理数GB数据的map-reduce作业 ● 在asyncio中使用线程来混合阻塞代码和asyncio代码

Matthew Fowler拥有近20年的软件工程经验,曾任软件架构师、工程总监等多个职位。他起初为科学应用程序编写软件,然后转向全栈Web开发和分布式系统,最终领导多个开发人员和管理人员团队为拥有数千万用户的电子商务网站编写应用程序及构建系统。他与妻子Kathy住在马萨诸塞州的列克星敦。

前 言 《Python asyncio并发编程》旨在介绍如何在Python中利用并行技术提高应用程序的性能、吞吐量和响应能力。本书首先关注并行的核心主题,解释asyncio的单线程并发模型是如何工作的,以及协程和async/await语法的工作原理。然后介绍并发的实际应用,例如并行发出多个 Web 请求或数据库查询、管理线程和进程、构建Web应用程序,以及处理同步问题。 目标读者 本书适用于希望在现有或新的Python应用程序中,更好地理解和使用并发技术的中高级开发人员。本书的立足于在于通过通俗易懂的语言解释复杂的并发技术。你不需要拥有并发经验,当然,如果你拥有这方面的经验,可以更快地理解书中的内容。在本书中,我们将介绍很多知识(从基于Web的API到命令行应用程序),帮助开发人员解决工作中遇到的许多问题。 内容路线图 本书一共14章,前几章介绍基础知识,后几章将介绍更多高级主题。 ● 第1章:专注于Python中的基本并发知识。将介绍什么是CPU密集型和I/O密集型工作负载,并介绍asyncio的单线程并发模型的工作原理。 ● 第2章:重点介绍asyncio协程的基础知识,以及如何使用async/await语法来构建使用并发的应用程序。 ● 第3章:重点介绍非阻塞套接字和选择器如何工作,以及如何使用asyncio构建echo服务器。 ● 第4章:重点介绍如何同时发出多个Web请求。通过本章的学习,我们将进一步了解关于并发运行协同程序的核心asyncio API。 ● 第5章:重点介绍如何使用连接池同时进行多个数据库查询。还将介绍数据库...

目录
荐语
查看详情 查看详情

目    录

 

第1 章  asyncio简介 1

1.1  什么是asyncio 2

1.2  什么是I/O密集型和CPU密集型 3

1.3  了解并发、并行和多任务处理 4

1.3.1  并发 4

1.3.2  并行 5

1.3.3  并行与并发的区别 6

1.3.4  什么是多任务 6

1.3.5  协同多任务处理的优势 7

1.4  了解进程、线程、多线程和多处理 7

1.4.1  进程 7

1.4.2  线程 8

1.5  理解全局解释器锁 11

1.5.1  GIL会释放吗 15

1.5.2  asyncio和GIL 17

1.6  单线程并发 17

1.7  事件循环的工作原理 20

1.8  本章小结 22

第2 章  asyncio基础 23

2.1  关于协程 23

2.1.1  使用async关键字创建协程 24

2.1.2  使用await关键字暂停执行 26

2.2  使用sleep引入长时间运行的协程 27

2.3  通过任务实现并行 30

2.3.1  创建任务 30

2.3.2  同时运行多个任务 31

2.4  取消任务和设置超时 34

2.4.1  取消任务 34

2.4.2  设置超时并使用wait_for

执行取消 36

2.5  任务、协程、future和awaitable 38

2.5.1  关于future 38

2.5.2  future、任务和协程之间的关系 40

2.6  使用装饰器测量协程执行时间 41

2.7  协程和任务的陷阱 43

... 查看详情

"在本书中,通过14章的内容,由浅入深地介绍如何通过asyncio实现并发编程,并使用 一个贯穿全书的示例,介绍如何使用asyncio 在服务器与客户端之间进行并发通信。看着这个示例由简单变得复杂,在掌握相关知识的同时,也给自己带来了不小的成就感。作为Python和数据科学的教学人员,我建议你在阅读本书时,认真学习书中的示例,并在自己的计算机上运行本书附带的程序,这将让你更好地理解本书所介绍的内容。别担心,本书使用的示例对计算机的要求并不高;我在完成相关练习时,使用的是2015年在拉斯维加斯的Best buy购买的MacBook Pro,配置i5 CPU、8GB
内存及128GB SSD,使用这样的机器运行本书的示例代码毫无压力。"

查看详情