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