一句话概括:进程是资源分配的最小单位,线程是 CPU 调度执行的最小单位;一个进程至少包含一个主线程,线程共享所属进程的资源。
补充通俗例子
把进程想象成一个独立工厂:
工厂有自己的厂房、仓库、水电(内存、资源);工厂垮了,别的工厂不受影响。 线程就是工厂里的工人:
多个工人共用同一个厂房、仓库;工人之间可以直接拿仓库里的东西(共享数据);一个工人出事,整个工厂停工。
两个常见延伸要点
多进程模型:适合高隔离场景,比如浏览器每个标签页单独进程,一个页面崩了不全部崩溃;缺点是资源占用高、通信麻烦。
多线程模型:适合 CPU 密集 / IO 密集任务,共享数据方便、切换快;缺点是共享资源带来并发安全问题(锁、死锁),同时有 GIL 这类限制(Python)。
快速记忆口诀
进程分资源,线程抢 CPU; 进程隔离开,线程一家人; 进程切换重,线程轻量跑。
本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。
原文链接
欢迎访问 小易撩挨踢