3 篇文章
Python 中的Asyncio 使用单线程 + 事件循环 (Event Loop)。这是一种协作式多任务。 代码执行到 await(比如等待网络响应)时,主动交出控制权挂起自己,让事件循环去执行其他任务。等到网络响应回来了,再恢复执行。 优缺点 适用场景:高并发 I/O(特别是网络连接)。 比如:高性能 Web 服务器(FastAPI)、WebSocket 服务、同时处理数万个长连接。 优缺点: ✅ 极致轻量:没有线程切换的操作系统开销,内存占用极低,能处理 C10k(万级并发)问题。 ❌ 传染性:一旦用了 async,整个调用链都要变成异步。 ❌ 怕阻塞:因为是单线程,如果中间混入了一个耗...
Python 中的并行 基于线程的并行 threading 模块提供了一种在单个进程内部并发地运行多个 线程 (从进程分出的更小单位) 的方式。 它允许创建和管理线程,以便能够平行地执行多个任务,并共享内存空间。 线程特别适用于 I/O 密集型的任务,如文件操作或发送网络请求,在此类任务中大部分时间都会消耗于等待外部资源。 伪并行 在 CPython 中,由于存在 全局解释器锁(GIL),同一时刻只有一个线程可以执行 Python 代码(虽然某些性能导向的库可能会去除此限制)。 如果你想让你的应用更好地利用多核心计算机的计算资源,推荐你使用 multiprocessing 或 concurre...
Python 中的装饰器 它是 Python 3.7 引入的一个标准库工具(from dataclasses import dataclass)。它的主要作用是 自动生成样板代码。 装饰器本质上就是一个 “接收一个函数/类,并返回一个新的函数/类”的高阶函数 工作流程 @dataclass 的核心工作流程是利用 Python 的 元编程 (Metaprogramming) 能力。具体步骤如下: 读取类型注解 (__annotations__): Python 的类会把变量定义的类型保存在 __annotations__ 字典中。 dataclass 函数会去读取 Student 类中的 nam...