- 6
- 0
- 约8.93千字
- 约 38页
- 2017-05-30 发布于北京
- 举报
* * * * * * * * * * * * * 多线程同步 互斥对象类似于事件对象同步。互斥同步也将建立一个互斥对象,该互斥对象也有“被线程拥有”和“不被线程拥有”两种状态。当互斥对象处于“不被线程拥有状态”,亦即“未锁定”时,表示可以执行相关的操作;当互斥对象处于“被线程拥有”状态时,表示此时不可以执行相关的操作。等过等待函数请求互斥对象,当互斥对象被设置成“不被线程拥有状态”,等待函数就可以返回,并自动将“互斥对象”设置成“被线程拥有”状态。 多线程同步 互斥同步函数: 1.CreateMutex函数。通过这个函数创建互斥对象,其中第二个参数指定互斥对象的状态。 2.ReleaseMutex函数。此函数释放某个线程对互斥对象的拥有权。 互斥同步流程: 首先利用CreateMutex函数创建互斥对象,并将拥有状态设置成FALSE,使互斥对象处于”未拥有“状态。然后利用WaitForSingleObject等待互斥对象,执行相关的处理。处理完成后利用ReleaseMutex释放线程对互斥对象的拥有权。 多线程同步 利用临界区同步 “临界区”是进行线程同步的另一种方法,它能够阻止两个或多个不同的线程在同一时间访问同一个代码区域。它用EnterCriticalSection()来指出已经进入代码的临界区,如果另一线程也调用了EnterCriticalSection函数,
原创力文档

文档评论(0)