
### 协程

- 异步编程是一种编程范式，旨在提高程序的并发能力。
- 协程是异步编程的一种具体实现。协程是一种特殊的函数，可以在执行过程中暂停，并在稍后恢复执行。协程提供了一种轻量级的并发方式，允许多个任务在单线程内交错执行，非常适合 I/O 密集型场景。Python 中的协程通常通过 yield 或 async/await 语法实现:  生成器协程：使用 yield 关键字暂停和恢复执行 ; 原生协程：使用 async def 定义，通过 await 等待其他操作完成。        
- 异步编程在 python 社区讨论中，常常等价于协程，甚至等价于 async



### **JIT（即时编译）**

JIT（Just-In-Time Compilation，即时编译）是一种在程序运行时将代码编译为机器码的技术。与传统的 **AOT（Ahead-Of-Time Compilation，提前编译）** 不同，JIT 在程序执行过程中动态编译代码，从而结合了解释型语言的灵活性和编译型语言的性能优势。
JIT 跨平台，生成适合当前平台的机器码。

JIT 的工作原理：**解释执行**：程序开始时，代码以解释方式执行（逐行解释字节码）。 **热点检测**：JIT 编译器监控代码执行，识别频繁执行的代码段（称为“热点”）。 **动态编译**：将热点代码编译为机器码，后续执行直接运行机器码，避免解释执行的开销。 **优化**：JIT 编译器可以根据运行时信息进行优化（如内联函数、消除死代码）。

在 Python 中利用 JIT 加速的方法包括：
- **PyPy**：通用的 Python 实现，适合大多数场景。pypy your_script.py    
- **Numba**：专注于数值计算，适合科学计算和数据分析。用 `@jit` 装饰器标记需要加速的函数。    
- **Cython**：将 Python 代码编译为 C 代码，适合需要极致性能的场景。支持 JIT 和 AOT 编译 。
- **Taichi**：专注于高性能计算，适合图形学、物理仿真等领域。