进程的概念:资源分配的最小单位
线程的概念:cpu调度的最小单位
但感觉有些抽象,我们形象的比喻一下
火车=进程 火车车厢=线程
*线程在进程下运行(车厢有火车的牵引才能运行)
*一个进程包含多个线程(一节火车有多个车厢)
*不同进程间数据很难进行共享(人很难从运行的这辆火车进入另一辆火车,除非站点换乘)
*同一进程下的线程之间很容易数据共享(人很容易在一辆火车的不同车厢走动)
*进程比线程消耗更多计算机资源(发动更多火车比发动一辆火车挂多节车厢更消耗资源)
*进程间不会相互影响,一个线程挂掉将导致整个进程挂掉(一辆火车不会影响另一辆火车,但一节车厢着火整个火车会受影响)
*进程可以拓展到多机,进程最适合多核(不同火车可以运行在不同轨道,但同一辆火车上的车厢不能运行在不同轨道)
*进程使用的内存地址可以上锁,即一个线程使用某些共享内存时,其他线程必须等它结束,才能使用这一块内存。(比如火车上的洗手间)-“互斥锁”
*进程使用的内存地址可以限定使用量(比如火车上的餐厅,最多只允许多少人进入,如果满了需要在门口等,等有人出来了才能进去)-“信号量”
这个概念我是在知乎上看到的,感觉很容易理解就发出来了。
本文用火车和车厢的形象比喻来解释进程和线程的概念。进程是资源分配的最小单位,如同火车,而线程则是CPU调度的最小单位,类似火车车厢。一个进程可以有多个线程,线程间数据共享相对容易,但进程间共享较难。线程的故障可能导致整个进程崩溃,而进程之间则互不影响。此外,通过锁和信号量机制,控制线程对内存资源的访问。这种比喻有助于理解两者在计算机系统中的角色和交互。
1366

被折叠的 条评论
为什么被折叠?



