一、进程和线程的区别
进程是程序的一次动态执行过程执行,比如我们运行 windows 下 exe 程序,这启动的就是一个进程
它是系统进行资源分配的最小单位,
进程也是资源分配和调度的基本单位,因为进程的创建、销毁、切换产生大量的时间和空间的开销,进程的数量不能太多,
而线程是比进程更小的能独立运行的基本单位,可以减少程序并发执行时的时间和空间开销,使得操作系统具有更好的并发性
线程基本不拥有系统资源,只有一些运行时必不可少的资源,比如程序计数器、寄存器和栈,进程则占有堆、栈。
进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间;线程没有独立的地址空间,同一进程的线程共享本进程的地址空间
简单来说进程就是一个容器,比如是一件房子,房子里有父亲,母亲和孩子,父亲在办公,母亲在做饭,孩子在写作业,此时房子就可以看作是一个进程,父亲、母亲和孩子是三个线程,线程共享进程的空间,执行各自的任务。
进程之间的通信比较困难需要借助内核,同一进程下的不同线程共享数据可以通过全局变量
再说下多进程架构和多线程架构: