程序、进程、线程三者的关系,面试高频考点

面试官问:进程和线程有什么区别?别慌,看这里 👇
📌 先搞清三个概念:
🔹 程序(Program)
- 存储在磁盘上的可执行文件
- 包含一组指令,是静态的
🔹 进程(Process)
- 程序被加载到内存中运行起来就是进程
- 一个程序可以有多个进程(比如Chrome每个标签页就是一个进程)
- 需要寄存器、程序计数器、栈等资源
🔹 线程(Thread)
- 进程中最小的执行单元
- 一个进程可以有多个线程
- 比如Word里,一个线程负责拼写检查,另一个负责文字输入
🔄 三者的关系:
1️⃣ 程序包含一组指令
2️⃣ 程序加载到内存,变成一个或多个进程
3️⃣ 进程启动后分配内存和资源,可以创建多个线程
⚡ 进程 vs 线程的核心区别:
- 🏠 进程通常相互独立,线程是进程的子集
- 💾 每个进程有独立的内存空间,同一进程的线程共享内存
- ⏱️ 进程是重量级操作,创建和销毁更耗时
- 🔄 进程间上下文切换开销更大
- 💬 线程间通信比进程间通信更快
💡 简单记:进程是”独栋别墅”,线程是”合租室友”。别墅之间互不干扰,室友之间共享客厅和厨房。
你还知道协程(Coroutine)吗?评论区聊聊!👇
#进程 #线程 #操作系统 #面试 #计算机基础 #并发 #后端开发