彻底弄懂--进程与线程的关系

我们先大致说一下背景,如果没有并发的概念,即一台服务器提供服务,一次只能为一个客户端服务,如果再有人想要请求,就得死等前面的人,那岂不是报废了,所以并发必须的有,实现并发的方式有很多种,多进程,多线程,IO多路复用。

进程和线程的概念

进程,是并发执行的程序在执行过程中,分配和管理资源的基本单位,是一个动态的概念,是竞争计算机系统资源的基本单位,每一个进程都有自己的地址空间,即进程空间(虚空间)进程空间的大小 只与处理机的位数有关,一个 16 位长处理机的进程空间大小为 216 ,而 32 位处理机的进程空间大小为 232 。进程至少有 5 种基本状态,它们是:初始态,执行态,等待状态,就绪状态,终止状态。

线程,是进程的一部分,一个没有线程的进程可以被看作是单线程的。线程有时又被称为轻权进程或轻量级进程,也是 CPU 调度的一个基本单位

进程和线程的区别

最根本的区别:进程是操作系统分配资源的最小单位,线程是任务调度和执行的基本单位

1:地址空间:同一进程内的线程是共享进程的地址空间的,而进程之间地址是独立拥有的
2:内存分配方面:系统在运行的时候会为每个进程分配不同的内存空间;而对线程而言,除了CPU外,系统不会为线程分配内存(线程所使用的资源来自其所属进程的资源),线程组之间只能共享资源。
3:进程间的切换花销较大,线程间切换花销较小
4:进程内一个线程死掉了,整个进程就挂掉了,而一个进程挂掉了,并不会影响其他进程的工作

总的来说要记住进程和线程之间是包含关系,一个程序至少要有一个进程,一个进程至少要有一个线程。

猜你喜欢

转载自blog.csdn.net/LYue123/article/details/88933386