🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 进程(Process) - windows的任务管理器可以看到一个个的进程 - 进程是程序的实体(就跟class是对象的实体一样,一个意思) - 是系统资源分配跟调度的基本单位 - 进程是线程的容器 - 进程中最少有一个线程 > 进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。**第二**,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。   ## 线程(Lightweight Process) - 线程可以利用进程了所拥有的资源 ( Nodejs是单线程的) - 线程是进程中的一个实体 - 系统把进程作为资源分配的基本单位,把线程作为资源调度的基本单位 - 一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行 ### 多线程 > 多线程是为了同步完成多项任务, 不是为了提高运行效率,而是为了提高资源使用率来提高 > 系统效率,线程是在同一时间需要完成多项任务的时候实现的。   ## 进程跟线程的区别 - 一个进程挂了对其它进程没有影响 - 一个线程挂了这个进程也就挂了( nodejs 中有没捕获的异常时,进程就会挂) - 多进程的程序要比多线程的程序健壮 (但在进程切换时,耗费资源较大,效率要差一些) - 对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程