知其然,知其所以然
Python 2026-09-29

asyncio 超时:wait_for 和 timeout 到底取消了谁

本机真实验证wait_for对有await点的协程正常生效,但对纯CPU忙等无await点的协程完全失效,跑满全程才返回。

Python asyncio 真实验证 动画演示
Python 2026-09-29

asyncio.shield:如何保护任务不被外层取消

本机真实对比有shield和没有shield时wait_for超时对底层任务的影响,验证shield让取消止步于外层。

Python asyncio 真实验证 动画演示
Python 2026-09-29

asyncio.Queue:异步生产者消费者模型

本机真实用小容量队列验证put()的背压阻塞机制,以及join()真实等待的是未完成任务计数归零而不是队列清空。

Python asyncio 真实验证 动画演示
Python 2026-09-29

asyncio.Lock、Semaphore 和 Event:异步同步原语怎么选

本机真实用Semaphore限流、Event广播唤醒、Lock重复acquire测试可重入性,验证三种异步同步原语完全不同的行为语义。

Python 并发编程 真实验证 动画演示
Python 2026-09-29

contextvars:异步任务之间如何传递请求上下文

本机真实对比ContextVar和普通全局变量在并发场景下的隔离性,验证请求上下文该用哪种变量才不会互相污染。

Python 并发编程 真实验证 动画演示
Python 2026-09-29

threading.Condition:线程为什么需要等待条件

本机真实用Condition搭建生产者消费者,并故意用if代替while炸出一个真实的IndexError来验证官方建议的必要性。

Python 并发编程 真实验证 动画演示
Python 2026-09-29

threading.Event:线程停止信号怎么设计

本机真实对比忙等轮询(800万次空转)和Event.wait()两种停止信号写法的CPU占用和响应速度差距。

Python 并发编程 真实验证 动画演示
Python 2026-09-29

线程异常、进程异常:主程序如何感知后台失败

本机真实对比裸Thread、ThreadPoolExecutor和multiprocessing.Process三种方式在异常发生后主程序真实能感知到多少信息。

Python 并发编程 真实验证 动画演示
Python 2026-09-29

TypeVar:泛型函数如何保持类型关系

本机真实用mypy检查带TypeVar的泛型函数,验证同类型调用被精确推断、混合类型调用退化成object,以及运行时对这些标注完全无视。

Python 类型系统 真实验证 动画演示
Python 2026-09-29

Protocol:Python 如何实现结构化类型

本机真实验证Protocol的类型兼容性判定只看方法签名不看继承关系,isinstance在runtime_checkable下同样不依赖__mro__。

Python 类型系统 真实验证 动画演示
Python 2026-09-29

ParamSpec:装饰器如何保留原函数参数类型

本机真实对比Callable[...,R]和ParamSpec两版装饰器,验证前者会让被装饰函数丢失参数类型检查,后者完整保留。

Python 类型系统 真实验证 动画演示
Python 2026-09-29

TypeGuard:类型检查器如何理解自定义判断函数

本机真实对比返回bool和返回TypeGuard的判断函数,验证只有TypeGuard能让mypy在if判断后正确收窄元素类型。

Python 类型系统 真实验证 动画演示
京ICP备2026067502号-1京公网安备11010502063487号