多线程编程之Windows同步方式

上传人:汽*** 文档编号:494657480 上传时间:2023-12-21 格式:DOC 页数:2 大小:38KB
返回 下载 相关 举报
多线程编程之Windows同步方式_第1页
第1页 / 共2页
多线程编程之Windows同步方式_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《多线程编程之Windows同步方式》由会员分享,可在线阅读,更多相关《多线程编程之Windows同步方式(2页珍藏版)》请在金锄头文库上搜索。

1、多线程编程之windOWS式在Windows不境下针对多线程同步与互斥操作的支持,主要包括四种方式:临界区(ii)、互斥对象()、信号量(ho事件对象()n。下面分别针对这四种方式作说明:(1临界区(ii)ion每个进程中访问临界资源的那段代码称为临界区(临界资源是一次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临界区,进入后不允许其他进程进入。不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。Windows不境下临界区的基本操作有以下几个:ionnectionion);ion);tion);ectionion(&Cion(&Ction(&(2互斥对象()在编程中

2、,引入了对象互斥对象(也叫互斥锁)的概念,来保证共享数据操作的完整性。每个对象都对应于一个可称为互斥锁的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。互斥对象的操作接口有以下几个:nMutexeaseMutex在使用互斥对象的时候借助Wioin,例如:WaitForSing,eO:jectdosoinRe,easeMutex(/*.(3信号量(ho信号量有时被称为信号灯,是在多线程环境下使用的一种设施,它负责协调各个线程,以保证它们能够正确、合理的使用公共资源。也是操作系统中用于控制进程同步互斥的量。信号量分为单值和多值两种,前者只能被一个线程获得,后者可以被若干个线程获得。与互

3、斥对象相比,信号量就好比是可以容纳多个人的房子允许多个人同时进入(数量有限制而已),而互斥对象就只能容纳一个人的小房子,同一时刻只能一个人使用。Windows不境下的信号量操作接口包括:phoore信号量的使用方式与互斥对象差不多,只不过在初始化的时候需要指定信号的个数:WaitForSing,eO:jdosoinRe,easeSemaphor(4事件对象()n对象是Window下面很有趣的一种锁结果。从某种意义上说,它和互斥锁很相近,但是又不一样。因为在线程获得锁的使用权之前,常常需要某一个线程(可能是主线程也可能是其他线程)调用设置一下才行。关键是,在线程结束之前,我们也不清楚当前线程获得之后执行到哪了。所以使用起来,要特别小心。常用的对象操作有:ateEventnEventseEventetEventEvent主线程一般可以这样做n创建事件对象SetEvent(WaitForMuC,oseHand,设置信号is等待线程结束关闭线程句柄而被启动的线程一般要等待某个事件再进行动作:whiWaiin等待事件总结:(1) 关于、在msdn上均有示例代码;(2) 般来说,使用频率上信号量互斥对象临界区事件对象(3) 信号量可以实现其他三种锁的功能,学习上应有所侧重(4) 纸上得来终觉浅,多实践才能掌握它们之间的区别

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号