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