首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

线程同步机制各有什么优缺点,该如何解决

2012-03-05 
线程同步机制各有什么优缺点我知道的线程同步机制有临界区、互斥、信号量,请问他们各有什么优缺点。还有其他

线程同步机制各有什么优缺点
我知道的线程同步机制有临界区、互斥、信号量,请问他们各有什么优缺点。还有其他同步机制?有什么优点

[解决办法]
别人写的:
同 步 类 用 于 当 访 问 资 源 时 保 证 资 源 的 整 体 性。 其 中CsyncObject 是 其 它 四 个 同 步 类 的 基 类, 不 直 接 使 用。 信 号 同 步 类CSemaphore 通 常 用 于 当 一 个 应 用 程 序 中 同 时 有 多 个 线 程 访 问 一 个 资 源( 例 如, 应 用 程 序 允 许 对 同 一 个Document 有 多 个View) 的 情 况; 事 件 同 步 类CEvent 通 常 用 于 在 应 用 程 序 访 问 资 源 之 前 应 用 程 序 必 须 等 待( 比 如, 在 数 据 写 进 一 个 文 件 之 前 数 据 必 须 从 通 信 端 口 得 到) 的 情 况; 而 对 于 互 斥 同 步 类CMutex 和 临 界 区 同 步 类CcriticalSection 都 是 用 于 保 证 一 个 资 源 一 次 只 能 有 一 个 线 程 访 问, 二 者 的 不 同 之 处 在 于 前 者 允 许 有 多 个 应 用 程 序 使 用 该 资 源( 例 如, 该 资 源 在 一 个DLL 当 中) 而 后 者 则 不 允 许 对 同 一 个 资 源 的 访 问 超 出 进 程 的 范 畴, 而 且 使 用 临 界 区 的 方 式 效 率 比 较 高。
[解决办法]
临界区不是内核对象,只能用于进程内部的线程同步。
互斥、信号量是内核对象可以用于不同进程之间的线程同步。
互斥其实是信号量的一种特殊形式。
互斥可以保证在某一时刻只有一个线程可以拥有临界资源。
信号量可以保证在某一时刻有指定数目的线程可以拥有临界资源。
win32多线程程序设计,windows核心编程书中都有详细介绍。

热点排行