实验4Windows线程互斥同步.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验 5 Windows 线程互斥同步 目录 实验目的 2 预备知识 2 一、 Windows 线程同步机制(注:互斥是同步的一种特例) 2 二、 Windows 多线程编程 3 三、 VC++ (略) 3 要用到的系统调用 3 实验内容 3 一、用 Win32 API 实现线程的创建、挂起、恢复、终止 3 二、 Windows 线程同步(含互斥) 5 1、用全局变量来进行同一进程的线程间同步 5 2、用事件( Event )对象来进行线程同步 6 3、用临界区( Critical Section )来进行线程互斥 8 4、用互斥量( Mutex )来进行线程互斥 10 5、用信号量( Semaphore)来实现线程同步 13 三、用 MFC 实现多线程同步 15 四、 .NET Framework 多线程的同步 16 实验目的 1、了解 Windows 内核对线程同步的支持。 2、了解 C 的线程函数库及 Windows 基本的线程 API 函数的使用。 3、进一步理解线程的同步控制原理。 预备知识 一、 Windows 线程同步机制(注:互斥是同步的一种特例) 1. 进程, Processes 2. 线程, Threads 3. 文件, Files 4. 控制台输入, Console input 5. 文件变化通知, File change notifications 6. 互斥量, Mutexes 7. 信号量, Semaphores 8. 事件(自动重设事件和手动重设事件), Events 9. 可等的计时器, Waitable timers 以上类型的对象属于内核对象,每一个上面这些类型的对象都可以处于两种状态之一: 有信号( signaled )和无信号( nonsignaled)。比如进程和线程在终结时其内核对象变为 有信号,而在它们处于创建和正在运行时,其内核对象是无信号的。因此可用于同步。 此外还有全局变量、临界区可用于线程同步。下面讲 5 种。 全局变量 事件( Event) 属于内核对象,有句柄,可跨进城 临界区( Critical Section) 互斥量( Mutex ) 属于内核对象,有句柄,可跨进城 信号量( Semaphore) 属于内核对象,有句柄,可跨进城 1、是否能跨进城使用? 互斥量、信号量、事件都可以跨进程来实现同步数据操作。 临界区只能用在同一进城的线程间互斥,因为临界区无名(无句柄) 。如果只为了在进程内 部用的话,使用临界区会带来速度上的优势并能够减少资源占用量。 2、其它区别 临界区:访问临界资源的代码段。课堂上讲过。 (存钱、取钱的例子还记得吗?) 互斥量:资源独占使用 信号量:资源计数器 事件对象:可以通过“通知”的方式来保持线程的同步。事件是

文档评论(0)

俞老师 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档