mfc线程同步与资源互斥
来源:互联网 发布:0基础学java有多难 编辑:程序博客网 时间:2024/04/29 08:32
一直不是很搞的清楚线程同步与资源互斥,不过好像这两个也是一个统一的内容。
1.创建线程
线程同步首先要有多线程为前提,如何创建线程:CreateThread函数(如果下文不需要引用句柄,可以提前关闭)
2.互斥对象(可以用来保护要操作的资源)
a.实例化互斥对象 HANDLE hMutex
b.CreateMutex
c. WaitforSingleObject
msdn对他的解释,作用为:I. The specified obj is in he signaled state
II. The time-out interval elapses
在这两种情况下,都会返回互斥对象句柄,否则的话,线程一直等待
d. ReleaseMutex
注:互斥对象只有拥有者才有释放权限
计数器 :1 拥有 +1
2 wait +1
3 Release -1 计数值为0 的时候才可以请求到互斥对象
若线程获得互斥对象拥有权,但是线程结束没有释放,系统会自动释放 -1,也可以通过wait函数的返回值来判断
3.事件对象(有信号才能获得)
a. 实例化 HANDLE gEvent
b.gxxx=CreateEvent();
c.SetEvent(设置有信号)
d.ResetEvent(设置无信号)
注:所有事件都可以请求到信号,在人工事件设置有信号状态下
自动重置事件是同步事件的一般做法通过,参数设置+ResetEvent来实现
4. 关键代码段
a. 设置全局CRITICAL_SECTION gCs
b. InitialCriticalSection()
通过EnterCriticalSection和LeaveCriticalSection来实现关键代码段
c.DeleteCriticalSection()
- mfc线程同步与资源互斥
- 线程同步与互斥
- 线程互斥与同步
- 线程同步与互斥
- 线程同步与互斥
- 线程同步与互斥
- 线程同步与互斥
- 线程同步与互斥
- 线程互斥与线程同步
- MFC线程(三):线程同步事件(event)与互斥(mutex)
- linux ------ 资源互斥与同步机制
- BCB线程的互斥与同步
- 操作系统 进程/线程 同步与互斥
- 线程同步与互斥 synchronized()
- 三线程的互斥与同步
- 线程的同步与互斥
- Windows线程的同步与互斥
- 线程同步与互斥的总结
- SGU 375题解
- python scrapy 基础
- 百练---求矩阵的加法---2870
- php操作mysql示例源码
- 百练---满足条件的整数---2941
- mfc线程同步与资源互斥
- oracle数据库和java的Date格式之间的转换
- ZOJ1004-Anagrams by Stack
- Qt下中文乱码问题的解决办法
- 访问网站第二个页面自动打开QQ对话框的代码
- Oracle 删除重复数据只留一条
- 提权0day
- php 请求返回json格式数据
- 百练---求出e的值---2709