互斥

并行、并发、同步和互斥

﹥>﹥吖頭↗ 提交于 2020-02-28 20:52:50
并行 计算机操作系统中的并行,指的是同时存在于内存中的 多道作业都处于运行状态 。实际上都是 宏观上并行 , 微观上串行 ,因为这些作业都是开始各自的运行,但都没运行完毕,只是 交替地使用cpu 。 在操作系统中是指,一组程序按独立异步的速度执行,不等于时间上的重叠(同一个时刻发生)。要区别并发。并发是指:在同一个时间段内,两个或多个程序执行,有时间上的重叠(宏观上是同时,微观上仍是顺序执行)。 并行也指8位数据同时通过并行线进行传送 ,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,数据也就容易出错。 并发 在 操作系统 中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个 处理机 上运行,但 任一个时刻点上只有一个程序在处理机上运行 。   在关系数据库中,允许多个用户同时访问和更改共享数据的进程。SQL Server 使用锁定以允许多个用户同时访问和更改共享数据而彼此之间不发生冲突。   操作系统并发程序执行的特点:   并发环境下,由于程序的封闭性被打破,出现了新的特点:   ①程序与计算不再一一对应,一个程序副本可以有多个计算   ②并发程序之间有相互制约关系,直接制约体现为一个程序需要另一个程序的计算结果,间接制约体现为多个程序竞争某一资源,如处理机、 缓冲区 等。   ③并发程序在执行中是走走停停

对BOOST 中同步互斥的一些理解

只谈情不闲聊 提交于 2019-12-03 05:56:02
对BOOST 中同步互斥的一些理解 首先,BOOST中有4种有关互斥量得概念。 1.LOCKABLE :仅支持排它型所有权 2.TIMEDLOCKABLE:支持带超时的排它型所有权 3.SHAREDLOCKABLE: 支持带超时的排他型所有权和共享型所有权(读写锁) 4.UPGRADELOCKABLE: 支持带超时的排他型所有权和共享型所有权,以及共享型所有权升级为排他型所有权(升级过程阻塞)(也支持降级) 可以看到2强化自1,3强化自2.4强化自3,支持某一概念则一定支持其强化自的概念。 boost::mutex 实现了LOCKABLE概念 (boost::recursive_mutex 是其递归锁的版本) boost::timed_mutex 实现了TIMEDLOCKABLE概念 (boost::recursive_timed_mutex 是其递归锁的版本) boost::shared_mutex实现了SHAREDLOCKABLE概念 boost::shared_mutex同样实现了UPGRADELOCKABLE概念 出于提供RAII操作风格和安全等其他一些原因BOOST不希望用户直接调用各种MUTEX类型中的相关接口,而是通过它提供的一些LOCK_TYPE来帮助我们调用。 主要的LOCK_TYPE包括: boost::unique_lock<LOCKABLE>