很多初学者在学习操作系统时,对“进程”和“线程”傻傻分不清。
其实,如果你玩过 英雄联盟(LOL),用游戏来类比就一清二楚了。
1️⃣ 什么是进程?
当你双击桌面上的 LOL 图标,客户端启动,游戏加载。
👉 这就是一个 进程。
进程是程序的运行状态。
只要 LOL 没关,这个进程就一直存在。
每个进程有属于自己的“地盘”(内存空间),和其他程序隔离。
所以,打开 LOL 客户端,就好比 进程启动。
2️⃣ 什么是线程?
进程只是一个“大容器”,真正干活的是里面的 线程。
进入一局游戏,有 10 个玩家。
这 10 个玩家,就好比 10 个 线程:
他们共享一张地图(共享进程资源)。
每个人同时在操作(线程并发执行)。
游戏进程不会自己打架,都是线程在“动手”。
👉 所以,线程是进程里的“执行单位”。
3️⃣ 为什么线程要共享?
在 LOL 里:
五个队友要打大龙。
所有人都在同一条大龙河道上输出。
这就好比:
大龙血量 = 一个共享变量。
每个线程(玩家)都能对它进行操作(扣血)。
如果没有线程共享变量,LOL 就没法同时显示五个人打龙的效果。
4️⃣ 线程与进程的关系
进程是大舞台:LOL 客户端开着,说明舞台还在。
线程是演员:10 名玩家在舞台上打团。
如果进程挂掉(客户端崩溃),所有线程都会消失(全员掉线)。
但如果只是某个线程出问题(比如你掉线了),其他玩家仍然可以继续游戏。
👉 这就是 进程与线程的区别与联系。
5️⃣ 总结
打开 LOL = 进程启动(程序的运行状态)。
游戏中的玩家 = 线程(进程中的执行单位)。
大龙血量 = 共享变量,线程可以同时操作。
进程崩了,全体线程都会消失;线程挂了,进程还能继续。
所以,下次你在峡谷开黑时,可以偷偷想一想:
👉 你其实就是进程里的一个小小线程!
如有错误,请与我联系,谢谢!