参考链接:
1.基本概念
进程:Windows系统中,一个运行的xx.exe就是一个进程。例如打开浏览器就是一个进程
线程:进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可共享数据。例如使用浏览器过程中页面渲染、网络数据获取就是多个线程。
简单理解进程是为了实现一个大的任务(修一栋大房子),每一个线程负责分工实现其中的各个部分(打灰,粉刷,通水,通电等等)
2.区别
线程具有许多传统进程所具有的特征,故又称为轻型进程(Light—Weight Process)或进程元;
根本区别:进程是操作系统资源分配的基本单位(根据要建的房子类型确定要多少水泥、木材等资源),线程是任务调度和执行的基本单位(先打地基还是先粉刷还是同时进行)
资源开销:每个进程都有独立的代码和数据空间,程序之间切换会有较大开销。同一个进程下的线程共享代码和数据空间,线程间切换开销小
内存分配:同一进程的线程共享本进程的地址空间和资源(同一工地的公共材料),而进程之间的地址空间和资源是相互独立的(两个工地老板都不同)
影响关系:一个进程崩溃后,在保护模式下不会对其他进程产生影响(一个工地烂尾不影响其他工地),但是一个线程崩溃整个进程都死掉(建房子任意一个环节出问题,工地就做不下去了)。所以多进程要比多线程健壮。