Python中多进程、多线程、协程区别和应用场景

面试很容易问到,千万别混淆:


多进程适合在CPU 密集型操做(cpu 操做指令比较多,如科学计算,位数多的浮点运算)


多线程适合在IO 密集型操做(读写数据操做较多的,好比爬虫)

 

线程是并发,进程是并行;进程之间相互独立,是系统分配资源的最小单位,同一个进程中的全部线程共享资源。

进程:一个运行的程序或代码就是一个进程,一个没有运行的代码叫程序。进程是系统进行资源分配的最小单位,进程拥有本身的内存空间,因此进程间数据不共享,开销大。面试

线程:调度执行的最小单位,也叫执行路径,不能独立存在,依赖进程的存在而存在,一个进程至少有一个线程,叫主线程,多个线程共享内存(数据共享和全局变量),所以提高程序的运行效率。多线程

协程:用户态的轻量级线程,调度有用户控制,拥有本身的寄存器上下文和栈,切换基本没有内核切换的开销,切换灵活。并发

相关文章
相关标签/搜索