首先来说说他两个的区别,进程是资源分配的最小单位,线程则是CPU调度的最小单位,多进程不能共享全局变量,当使用全局变量的时候势必会造成,race condition,而多线程则可以共享全局变量,对于大量需要CPU工作的时候,进程就显得大有优势,因为多线程需要CPU来不停切线程换大量时间都消耗在,切换线程上,而对于IO操作上(比如文件存储,网络爬虫),多线程就有巨大优势。

总结:对于计算密集型多进程优势,对于io密集型多线程有优势。注意线程锁的应用。

线程与进程最大的区别在与,线程是调度的基本单位,而进程则是资源拥有的基本单位。
说白了,所谓内核中的任务调用,实际上的调度对象是线程;而进程只是给线程提供了虚拟内存、全局变量等资源。
所以,对于现场和进程,我们可以这么理解:
当进程只有一个线程时,可以认为进程就等于线程。
当进程拥有多个线程时,这些线程会共享相同的虚拟内存和全局变量等资源。这些资源在上下文切换时是不需要修改的。
另外,线程也有自己的私有数据,比如栈和寄存器等,这些在上下文切换时也是需要保存的。