- 1
- 0
- 约小于1千字
- 约 44页
- 2019-11-04 发布于天津
- 举报
第二章 多线程编程方法综述;免费午餐结束了;线程的基本概念
线程的同步
多线程编程模型
多线程编程的原则及要点;1. 线程的基本概念 ;线程;1.1 线程与进程的区别;1.1 线程与进程的区别;1.1 线程与进程的区别;1.1 线程与进程的区别;1.1 线程与进程的区别;1.2 用户级线程、核心级线程和硬件线程 ;1.2 用户级线程、核心级线程和硬件线程;用户级线程和核心级线程之间的映射方式;多对多映射 ;1.3 线程的生命周期 ;2 线程的同步 ;为什么需要线程同步?;常用的线程同步方法;2.1 临界区-----互斥 ;2.2 信号量;锁类似于信号量,不同之处在于同一时刻只能使用一个锁。
锁对应两个原子操作:
Acquire()获取操作,将锁据为己有并把状态改为已加锁,如果该锁已被其他线程占有则等待,锁状态保持未加锁状态。
Release()释放操作,将锁状态由已加锁状态改为未加锁状态。
一个锁最多只能由一个线程获得。
任何线程访问共享资源前要先获得锁,否则,线程将保持在该锁的等待队列,直到该锁被释放。;互斥量是一种锁,线程对共享资源访问之前必须先获得锁;否则线程将保持等待状态,直到该锁可用。
占有这个锁的过程就叫做锁定,或者叫获得互斥量。;2.4 锁;2.4 锁;2.5 条件变量 ;2.5 条件变量;Lock L;
Bool LC = false;
void producer() {
while(1) {
L-acquire();
//临界区开始
while (LC==true) {
C-wait(L);
}
//产生下一个数据
LC=true;
C-signal(L);
//临界区结束
L-release();
};3. 多线程的编程模型;;三种多线程编程模型;3.1 流水线编程模型What Is Pipelining;What Is Pipelining;What Is Pipelining Start work ASAP;3.1 流水线编程模型;3.1 流水线编程模型;3.2 工作组编程模型;3.2 工作组编程模型;3.3 客户端/服务器方式;4. 多线程编程的原则及要点;负载平衡;负载平衡的难题;串行化问题;解决措施
您可能关注的文档
最近下载
- 特殊作业安全管理制度(GB30871-2022).pdf VIP
- 心理治疗师中级试题及答案(二).pdf VIP
- 心理治疗师(心理治疗师中级)文档.docx VIP
- 心理治疗师考试复习重点笔记汇总名师资料.docx VIP
- 心理治疗师考试复习重点笔记汇总.pdf VIP
- 2024年卫生资格(中初级)-心理治疗(师)历年考题高频考点荟萃带答案.docx VIP
- 心理治疗师考试复习重点笔记汇总.doc VIP
- 09G901-5混凝土结构施工钢筋排布规则与构造详图(现浇混凝土板式楼梯)(OCR).pdf VIP
- 建筑工程图集 09G901-3:混凝土结构施工钢筋排布规则与构造详图(筏形基础、箱形基础、地下室结构、独立基础、条形基础、桩基承台).pdf VIP
- 03G101-2:混凝土结构施工图平面整体表示方法制图规则和构造详图(现浇混凝土板式楼梯) conv.docx VIP
原创力文档

文档评论(0)