下列关于进程和线程的说法,正确的是()。A. 一个进程只能包含一个线程B. 线程是资源分配的基本单位,进程是调度的基本单位C. 进程切换的开销大于线程切换D. 线程之间不能共享资源,进程之间可以共享资源
考点解析
本题核心考查进程与线程的核心区别及特性:
1.进程:操作系统进行资源分配和调度的基本单位,拥有独立的内存空间、文件描述符等资源,进程间切换开销大。
2.线程:进程内的一个执行单元,共享所属进程的资源(如内存、文件句柄),线程是CPU调度的基本单位,切换开销小。
3.关系:一个进程可包含多个线程(多线程),线程依赖进程存在,进程结束则线程全部结束。
详细分析过程
题干要求判断关于进程和线程的正确说法:
•选项A:一个进程可包含多个线程(如浏览器进程包含渲染线程、网络线程等),“只能包含一个”错误,排除。
•选项B:进程是资源分配的基本单位,线程是调度的基本单位,该选项颠倒了两者角色,排除。
•选项C:进程切换需保存整个进程的资源状态(如内存映射、寄存器等),线程切换仅需保存线程私有数据(如程序计数器),因此进程切换开销更大,正确。
•选项D:线程属于同一进程,可共享进程资源(如全局变量);进程间资源独立,需通过IPC(如管道、共享内存)才能共享,该选项描述相反,排除。
工作中的实际应用
早年开发一个下载工具时,最初用单进程单线程设计,每次只能下载一个文件,效率极低。改成“一个进程+多个线程”后,主线程负责界面交互,每个下载任务对应一个线程,共享进程的网络连接资源,同时能下载10个文件,效率提升10倍。
但也踩过坑:多线程共享全局变量时,没加锁保护,导致两个线程同时修改下载进度,出现进度显示混乱(比如一个线程加10%,另一个加20%,结果只显示20%)。后来用互斥锁控制变量访问,才解决了这个问题——这也说明,线程共享资源方便,但需注意同步问题。
答案总结
进程是资源分配单位,线程是调度单位,线程切换开销更小,两者在多任务处理中各有适用场景。
答案:C
文章来源:
四季读书网
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至23467321@qq.com举报,一经查实,本站将立刻删除;如已特别标注为本站原创文章的,转载时请以链接形式注明文章出处,谢谢!