python 多线程vs多进程
多进程和多线程的应用场景
Python多线程和多进程差异
Python多线程不能使用CPU多核资源,即同一时刻,只有一个线程使用CPU资源,所以使用Python多线程不能算是并发。
如果想要充分利用CPU多核资源,做到多并发,这就需要Python多进程的了!
也就是说:只有Python多进程才能利用CPU多核资源,做到真正的多并发!
Python多线程和多进程应用场景
既然Python多线程不能并发,那存在还有什么意义呢?
其实Python多线程和多进程有自己的应用场景:
- Python多线程适用于I/O密集型场景,如解决网络IO、磁盘IO阻塞问题,例如文件读写、网络数据传输等;
- 而Python多进程更适用于计算密集型场景,多并发,大量计算任务等。
进程vs多线程:最流行的方法是应用多进程方法,在这个方法中你使用多个进程而不是多个线程。每一个Python进程都有自己的Python解释器和内存空间,因此GIL不会成为问题。Python拥有一个multiprocessing模块可以帮助我们轻松创建多进程:
相比于多线程版本,性能有所提升。
但是时间并没有下降到我们之前版本的一半,这是因为进程管理有自己的开销。多进程比多线程更“重”,因此请记住,这可能成为规模瓶颈。