news 2026/6/12 13:20:42

《Asynchronous Programming in Python》读后感

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《Asynchronous Programming in Python》读后感

一、 为什么读这本书?

最近在梳理并发编程,所以想了解一些异步开发, asyncio 的用法,《Asynchronous Programming in Python》是 2025 年出版,比较新,所以选择阅读这本书。

二、这本书写了什么?

总体而言,这本书什么都谈一点。基础概念:进程(process)、线程(thread) ,纤程(fiber),协程(coroutine),生成器。异步库:asyncio, trio。性能分析(scalene),测试(pytest-asyncio), 设计模式(monitor object patter, leader/follower patter),框架(Django, Flask, Quart),数据库操作(sqlite3, aiosqlite)等等,在此就不一 一罗列了。

三、本书评价

本书总计 171 页,从 2025 年 12 月 29 日至 2026 年 1 月 20 日,期间断断续续花了 22 天阅读完《Grokking Concurrency》。

总体而言,本书问题较多,例如:

1.罗列内容,缺乏深度。

这本书只有171页,但是却谈了很多很多的技术概念、库(框架),相当于把各种库的基本用法汇总上去就完了,如果让我给这本书起一个中文名,我觉得应该叫做《Python异步编程概览》,都达不到入门的程度。看完了也只是在头脑中有一个印象而已,对实际工程项目没有任何帮助。

2.代码写法随意,风格不统一。

# p55, 不用 f-string:print("Queue size:",curr_len)
# p56, 用 f-string:f=open(f'./tmp/${item["id"]}.json',"a")

虽说怎么写都行,但是代码保持统一风格,有利于代码阅读、维护。

3.存在多处代码错误

# p55asyncdeffetcher():whileTrue:msg=awaitsse_client_get_values()try:foriteminmsg:vals.put(item)exceptqueue.Full:print("Queue full")returnTrueawaitasyncio.sleep(1)

这里没有指定 timeout, 并不会触发 queue.Full 异常。当然,错误远不止这一处。

4.表述不严谨

p69, “This blocking operation is easily solved by relying on one of the most used asynchronous HTTP clients, aiohttp, which provides a non-blocking HTTP connection pooling mechanism to reuse a connection to a server.”, aiohttp 是 “Asynchronous HTTP Client/Server for asyncio and Python.”。aiohttp 既可以做 Client, 也可以做 Server, 而不只是 Client,这样写容易让人误解。
p71, 测试代码的模块命名为 test1.py,这在实际的开发中是万万不行的,同时也没有指出在实际开发中,测试代码的组织结构。
p91, "Several Python frameworks became popular way before asynchronous programming mechanisms had become incorporated into Python’s core APIs. "。这里用 Python’s core APIs 这个概念, 其实大部分人看到这个概念根本不知道指的是什么。

本来阅读是为了解决一些问题,但是如果阅读这本书,问题会更多,因为如果你是很认真的看,你就需要花大量的时间去梳理作者说的某个概念具体指的是什么,作者说的到底对不对。

回到为什么读这本书——“了解一些异步开发, asyncio 的用法”,这本书没有解决我的问题,因为介绍的非常浅,仅仅写个 demo 而已,根本无法在生产环境使用。

四、阅读方法

基于本人秉持的观点“虽然每个作者的写作水平不一样,但我们要做一个高水平的读者,要根据作者的写作水平,调整自己的阅读方法”,本人阅读此书的方法如下:

1…直接下载源码,然后在源码里面创建目录写自己的代码。之前自己都是新建一个项目写代码,然后在自己的项目和书中的项目来回切换,太麻烦了。

2.作者很多描述是不准确的,不必纠结于作者给出的概念,先往下读。

3.对于不熟悉的技术,如:异步编程的语法,包。先熟悉,再自己写,不然就会遇到各种问题。虽然先自己写,然后再和作者的代码对比也是一种方式,但是更慢。

五、这本书适合什么样的人?

介于作者泛泛而谈,东一榔头,西一棒子,距离工程应用相距十万八千里,本书只适合想大概浏览一下 Python 异步编程相关库的人。

六、阅读指数

按照 5 星标准,本书阅读指数 1 颗星(★☆☆☆☆)。

七、参考资料

1. 编程

(1)豆瓣,Nicolas Bohorquez,《Asynchronous Programming in Python》:https://book.douban.com/subject/38207055/

(2)Github,源码:https://github.com/PacktPublishing/Asynchronous-Programming-in-Python

2. 英语

(1) Etymology Dictionary:https://www.etymonline.com

(2) Cambridge Dictionary:https://dictionary.cambridge.org

欢迎搜索及关注:编程人(a_codists)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 17:32:32

Java 企业级 AI 框架:从落地到实践的技术路径

在 AI 技术深入产业应用的当下,Java 技术生态与 AI 能力的融合成为许多企业数字化转型的关键方向。对于 Java 技术公司和开发程序员而言,如何将 AI 能力稳定、高效地集成到现有系统中,避免重复开发和技术风险,是亟待解决的核心问题…

作者头像 李华
网站建设 2026/6/10 0:00:41

顶刊论文引言用AI怎么写?借助Gemini 3 Pro结合四段式写出逻辑清晰的Introduction

在SCI论文当中,引言是引导读者理解研究背景、明确研究价值的关键部分。作用可以简单概括为:“说明这项研究为什么非做不可。” 很多同仁在写SCI引言时,会存在专业术语误用、背景过于宽泛或者夸大创新等问题。 今天教你引言四段式写法(背景-缺口-目标-意义),结合AI工具,…

作者头像 李华
网站建设 2026/6/10 12:32:01

AI卷出新高度!Agentic RAG让大模型变身“超级员工“,小白也能轻松上手!

前阵子一个朋友帮一家金融机构做合规审核工具,说用传统RAG搭的系统总掉链子——用户问“跨区域信贷合同需规避哪些监管红线”,系统只能从知识库扒一堆条款堆砌过来,既不会拆解“跨区域”、“信贷类型”这些核心维度,也没法验证条款…

作者头像 李华