真题再现(2022年软件设计师真题

四季读书网 1 0
真题再现(2022年软件设计师真题

下列关于进程和线程的说法,正确的是()。A. 一个进程只能包含一个线程B. 线程是资源分配的基本单位,进程是调度的基本单位C. 进程切换的开销大于线程切换D. 线程之间不能共享资源,进程之间可以共享资源

考点解析

本题核心考查进程与线程的核心区别及特性:

1.进程:操作系统进行资源分配和调度的基本单位,拥有独立的内存空间、文件描述符等资源,进程间切换开销大。
2.线程:进程内的一个执行单元,共享所属进程的资源(如内存、文件句柄),线程是CPU调度的基本单位,切换开销小。
3.关系:一个进程可包含多个线程(多线程),线程依赖进程存在,进程结束则线程全部结束。

详细分析过程

题干要求判断关于进程和线程的正确说法:

选项A:一个进程可包含多个线程(如浏览器进程包含渲染线程、网络线程等),“只能包含一个”错误,排除。
选项B:进程是资源分配的基本单位,线程是调度的基本单位,该选项颠倒了两者角色,排除。
选项C:进程切换需保存整个进程的资源状态(如内存映射、寄存器等),线程切换仅需保存线程私有数据(如程序计数器),因此进程切换开销更大,正确。
选项D:线程属于同一进程,可共享进程资源(如全局变量);进程间资源独立,需通过IPC(如管道、共享内存)才能共享,该选项描述相反,排除。

工作中的实际应用

早年开发一个下载工具时,最初用单进程单线程设计,每次只能下载一个文件,效率极低。改成“一个进程+多个线程”后,主线程负责界面交互,每个下载任务对应一个线程,共享进程的网络连接资源,同时能下载10个文件,效率提升10倍。

但也踩过坑:多线程共享全局变量时,没加锁保护,导致两个线程同时修改下载进度,出现进度显示混乱(比如一个线程加10%,另一个加20%,结果只显示20%)。后来用互斥锁控制变量访问,才解决了这个问题——这也说明,线程共享资源方便,但需注意同步问题。

答案总结

进程是资源分配单位,线程是调度单位,线程切换开销更小,两者在多任务处理中各有适用场景。

答案:C

抱歉,评论功能暂时关闭!