- 2
- 0
- 约3.91千字
- 约 6页
- 2026-11-08 发布于河北
- 举报
进程与线程高频面试题及详细答案(实战版)
一、基础概念类(必问基础)
1、简单说说进程和线程的核心区别?
这是操作系统最核心的两个并发单元,最简单的理解:进程是资源分配的最小单位,线程是CPU调度的最小单位。
具体区别主要有这几点:
第一,资源隔离不同。每个进程都有独立的内存空间,进程之间完全隔离,互不干扰;而线程隶属于进程,同一个进程内的所有线程共享进程的堆内存、全局变量、文件句柄等资源,只有栈内存是线程私有的。
第二,开销不同。创建、销毁进程的开销极大,需要申请和释放完整的内存空间、系统资源;线程创建和销毁开销非常小,只需要分配少量栈空间和线程控制块。
第三,通信方式不同。进程间通信很麻烦,需要通过管道、消息队列、共享内存、Socket等专门机制;同进程线程直接读写共享变量就能通信,成本极低。
第四,独立性不同。一个进程崩溃,不会影响其他进程;但一个线程异常崩溃,会导致整个进程直接退出,所有线程全部终止。
第五,切换成本不同。进程切换需要刷新页表、清空缓存、保存完整进程上下文,耗时很长;线程切换只需保存少量线程上下文,开销极小。
2、为什么要有线程?只用进程不行吗?
只用进程完全可以实现并发,但效率太低,无法满足高并发场景的需求。
首先,进程太重,资源开销大,如果服务需要同时处理成千上万个请求,创建对应数量的进程会直接耗尽系统资源。其次,进程切换耗时高,频繁并发调度会导致CP
原创力文档

文档评论(0)