信安系统学习笔记七

第四章 并发编程

一、知识点归纳

并行计算导论

并行计算是一种计算方法,通过使用多个执行并行算法的处理器相较串行计算更快地解决问题。

顺序算法与并行算法

并行性与并发性

线程

线程的原理

线程的优点

线程创建和切换速度更快

线程的响应速度更快线程更适合并行计算

线程的缺点

由于地址空间共享,线程需要来自用户的明确同步。

许多库函数可能对线程不安全。

在单CPU系统上,使用线程解决问题实际上要比使用顺序程序慢,这是由在运行时创建线程和切换上下文系统开销造成的

线程操作

线程管理函数

线程示例程序

线程同步

竞态条件:当多个线程试图修改同一共享变量或数据结构时,修改结果取决于线程的执行顺序。

死锁预防

  • 简单的死锁预防是对互斥量进行排序,并确保每个线程只在一个方向请求互斥量,这样请求序列中就不会有循环。有多种方法可以解决死锁问题:死锁预防、死锁规避、死锁检测和恢复等。

条件变量

  • 条件变量提供线程协作的方法。同样需要初始化,且方法同互斥量相同。

信号量

  • 信号量是进程同步的一般机制。(计数)信号量是一种数据结构

屏障

  • 线程连接操作允许某线程(通常是主线程)等待其他线程终止,在Pthread中,可以采用的机制是屏障以及一系列屏障函数。

Linux中的线程

  • Linux不区分进程和线程。对于Linux内核,线程只是一个与其他进程共享某些资源的进程。

实践内容与截图

用线程计算矩阵的和

 

posted @ 2022-10-16 18:33  直蓝  阅读(18)  评论(0编辑  收藏  举报