信安系统学习笔记七
第四章 并发编程
一、知识点归纳
并行计算导论
并行计算是一种计算方法,通过使用多个执行并行算法的处理器相较串行计算更快地解决问题。
顺序算法与并行算法
并行性与并发性
线程
线程的原理
线程的优点
线程创建和切换速度更快
线程的响应速度更快线程更适合并行计算
线程的缺点
由于地址空间共享,线程需要来自用户的明确同步。
许多库函数可能对线程不安全。
在单CPU系统上,使用线程解决问题实际上要比使用顺序程序慢,这是由在运行时创建线程和切换上下文系统开销造成的
线程操作
线程管理函数
线程示例程序
线程同步
竞态条件:当多个线程试图修改同一共享变量或数据结构时,修改结果取决于线程的执行顺序。
死锁预防
- 简单的死锁预防是对互斥量进行排序,并确保每个线程只在一个方向请求互斥量,这样请求序列中就不会有循环。有多种方法可以解决死锁问题:死锁预防、死锁规避、死锁检测和恢复等。
条件变量
- 条件变量提供线程协作的方法。同样需要初始化,且方法同互斥量相同。
信号量
- 信号量是进程同步的一般机制。(计数)信号量是一种数据结构
屏障
- 线程连接操作允许某线程(通常是主线程)等待其他线程终止,在Pthread中,可以采用的机制是屏障以及一系列屏障函数。
Linux中的线程
- Linux不区分进程和线程。对于Linux内核,线程只是一个与其他进程共享某些资源的进程。
实践内容与截图
用线程计算矩阵的和
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律