重新认识 Python(5)再谈并发
重新认识 Python(5):再谈并发
之前写了一个关于Python并发模型的小文,主要讨论利用协程实现并发的一些基本方法和规则,文章的重点是 coroutine 的使用。这两天琢磨了一下为什么 Python 要提出基于协程的并发模型,以及跟线程、进程实现的并发有什么区别和联系?最后,我还想简单讨论一下这三种并发模型是否协调在一起工作。
进程、线程、协程并发的特点
首先明确明确一点,Python一般的协程库,比如 asyncio ,不存在任何并行,即一个时间只有一个任务(协程或者普通函数)在运行。而线程和进程在多核CPU的情况下通常是存在并行的,不过由于Python的GIL,Python的线程不存在并行计算,即使运行在多核CPU上。
我们再来看这三个模型的特点。
