- 1
- 0
- 约4.7千字
- 约 7页
- 2026-09-09 发布于河北
- 举报
核心系统工程师面试题(含详细落地答案)
一、基础原理模块(必考基础)
1、简述进程和线程的核心区别,实际业务中怎么选择多进程和多线程?
参考答案:
核心区别有三点:第一,资源隔离性,进程是操作系统资源分配的最小单位,每个进程独立占用内存、文件句柄等资源,互不干扰;线程是CPU调度的最小单位,同一进程内的所有线程共享进程的内存、全局变量、文件资源。第二,开销差异,进程创建、销毁、切换开销极大,需要重新分配资源、刷新页表;线程开销极小,仅需维护线程栈和寄存器。第三,通信方式,进程间通信复杂,依赖管道、消息队列、共享内存等;线程间直接读写全局变量即可通信,但需要处理并发安全问题。
业务选型原则:
多进程适合任务隔离性要求高、稳定性优先的场景,比如核心服务主从进程、隔离高危计算任务,单个进程崩溃不会影响整体服务。
多线程适合IO密集型、任务轻量、频繁创建销毁的场景,比如接口请求处理、网络IO监听,能最大程度复用资源,减少切换开销。
2、什么是协程?线程、协程的适用场景差异是什么?
参考答案:
协程是用户态的轻量级调度单元,完全由程序代码自主调度,不依赖操作系统内核,无需内核态和用户态切换,切换开销远小于线程。协程在单线程内实现并发,同一时刻只有一个协程在运行,通过主动挂起、唤醒实现任务切换。
场景差异:
线程适合CPU密集型任务,依靠操作系统多核调度,能充分利用CPU算力;但线程数量过多
原创力文档

文档评论(0)