本文主要是介绍学习笔记7,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
第四章 并发进程
4.1 并行计算导论
并行计算是一种计算方案,它尝试使用多个执行算法的处理器更快速地解决问题
计算的未来发展方向是并行计算
并行算法原理如图:
4.1.1 顺序算法与并行算法
在描述顺序算法时,常用的方法是用一个begin-end代码块列出算法
顺序算法包含多个步骤,所有步骤通过单个任务依次执行,每次执行一个步骤
并行算法的描述,使用cobegin-coend代码块来指定
在cobegin-coend块中,所有任务都是并行执行的
4.1.2 并行性与并发性
理想情况下,并行算法中的所有任务都应该同时实时执行
真正的并行执行只能在有多个处理组件的系统中实现
4.2 线程
实现线程主要有三种方式:
(1)使用内核线程实现
(2)使用用户线程实现
(3)使用用户线程加轻量级进程混合实现
4.2.1 线程的原理
4.2.2 线程的优点
(1)线程创建和切换速度更快
(2)线程的响应速度更快
(3)线程更适合并行计算
4.2.3 线程的缺点
(1)由于地址空间共享,线程需要来自用户的明确同步
(2)许多库函数可能对线程不安全
(3)单CPU系统上,线程解决问题比顺序程序慢
总结:这里我们总结了线程的优缺点,顺带找到了进程的优缺点
4.3 线程操作
4.4 线程管理函数
4.4.1 创建线程
使用pthread_create()函数创建线程
4.4.2 线程ID
线程ID是一种不透明的数据类型,取决于实现情况
4.4.3 线程终止
线程函数结束后,线程即终止
4.4.4 线程连接
一个线程可以等待另一个线程的终止
4.5 线程示例程序
4.5.1 用线程计算矩阵的和
4.5.2 用线程快速排序
4.6 线程同步
4.6.1 互斥量
4.6.2 死锁预防
4.6.3 条件变量
4.6.4 生产者-消费者问题
4.6.5 信号量
4.6.6 屏障
4.6.7 用并发线程解线性方程组
4.6.8 Linux中的线程
这篇关于学习笔记7的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!