本文主要是介绍操作系统期末复习——第四章 线程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
第四章 线程
1 线程概述
1.1为什么引入线程
- 有的进程可能需要同时满足许多功能,引入线程增加并发度
- 进程上下文切换系统开销大,线程降低系统开销
- 进程的创建相对困难,线程创建相对简单——只需要复制栈和寄存器的内容
1.2多线程进程
一个进程可以拥有多个线程,多个线程间共享以下内容
- 代码段、全局变量
- 打开的文件标识符
- 工作环境——当前目录,用户权限等
- 内存空间
多线程编程的优点:
- 响应速度快
- 资源共享
- 经济
- 多处理器体系结构的应用:可在多处理器上并行
2 多线程模型
2.1用户线程和内核线程
用户线程:
- 受内核支持
- 由线程库管理,无需内核管理
- 对于内核透明
内核线程:
内核线程和用户线程存在映射关系即:
一对一模型优点:
- 提供并发功能,多处理器并行执行
- 一个阻塞,可以调度另一个线程继续执行
缺点:
多对一模型缺点:
多对多模型缺点:
二级模型:
- 多对多模型的变种,允许用户线程绑定一对一绑定一个特定内核线程
3 线程库
3.1实现方式
- 非嵌入到内的方式:在用户控件中提供没有内核支持的库,所有代码和数据结构都存在于用户空间中
- 嵌入到内核的方式:调用内核库,代码和数据结构储存在内核中
4 多线程程序相关问题
4.1系统调用fork()与exec()的含义
线程调用fork()创建新进程时,如果调用exec()只复制单个线程,不调用则复制全部全部线程
4.2线程取消
目标线程:线程完成任务前需要被取消的线程
异步取消:一个线程立即终止目标线程
延迟取消:目标线程不断检测它是否应终止
4.3信号处理
同步信号:进程本身产生的信号
异步信号:进程外产生的信号
ctrl + C 信号传送给每个线程,pthread_kill函数可以传信号给指定线程
4.4线程池
在进程开始时创建一定数量的线程备用
主要优点:
- 用现有线程处理请求比等待创建新的线程要快
- 线程池限制了可用线程的数量,防止大量创建并发线程
4.5调度程序激活
暂时略过,复习完有时间再看
这篇关于操作系统期末复习——第四章 线程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!