# Python 并发编程的方式 一个进程中可以启动N个线程,一个线程中可以启动N个协程。 ## 多进程 Process (multiprocessing) - 优点:可以利用多核CPU并行运算 - 缺点:占用资源最多,可以启动的数目比线程少 - 适用于:CPU密集型计算 ## 多线程 Thread (threading) - 优点:相比进程,更轻量级,占用资源少 - 缺点: - 相比进程:多线程只能并发执行,不能利用多CPU(GIL) - 相比协程:启动数目有限制,占用内存资源,有线程切换开销 - 适用于:IO密集型计算,同时运行的任务数目要求不多 ## 多协程 Coroutine (asyncio) - 优点:内存开销最少,启用协程数量最多 - 缺点:支持的库有限制(aiohttp vs requests),代码实现复杂 - 适用于:IO密集型计算,需要超多任务运行,但有现成库支持的场景