共享内存的处理
来源:互联网 发布:淘宝网电脑版下载安装 编辑:程序博客网 时间:2024/05/22 09:43
对于共享内存,在业务上可以进行适当的安排,来进行解决,在代码级别一般都用临界区和互斥量
对于临界区,它是解决线程间的共享内存的,不能垮进程
对于互斥量,可以是线程间的,也可以是进程间的,进程间是利用系统内核对象的,该内核对象是可以有名字,利用该名字可以达到安全的共享内存
在线程之间,临界区消耗的时间大概是互斥量的十分之一,所以,在线程中尽量使用临界区
临界区的使用
先定义临界区变量 CRITICAL_SECTION m_criticl;
用之前初始化临界区InitializeCriticalSection(&m_criticl);
对要保护的代码的开始加 EnterCriticalSection(&m_criticl);
结尾的时候要释放LeaveCriticalSection(&m_criticl);
当不再用,就是析构的时候,删除DeleteCriticalSection(&m_criticl);
互斥量的使用
创建互斥量, 第三个参数不为空,则可以用于进程间的互斥
HANDLE WINAPI CreateMutex(
__in LPSECURITY_ATTRIBUTES lpMutexAttributes,
__in BOOL bInitialOwner,
__in LPCTSTR lpName );
在保护的代码上加 WaitForSingleObject
用完后,释放 ReleaseMutex
最后不用的话,要关掉互斥量的句柄CloseHandle, 因为系统的句柄是有限的
0 0
- 共享内存的处理
- 我对多线程共享内存的处理的看法
- 信号处理和共享内存
- 共享内存程序段错误的处理方法及分析
- nginx共享内存:共享内存的实现
- 共享内存的使用
- Linux的共享内存
- 共享内存的扩展
- 共享内存的使用方法
- 共享内存的含义
- 共享内存的删除
- 共享内存的使用
- 共享内存的使用
- 共享内存的操作
- 共享内存的使用
- 共享内存的练习
- 共享内存的使用
- 共享内存的使用
- 一个人的核心竞争力是什么?
- 13,XCode的编译原理
- ORACLE 创建数据链
- 原型模式---抽象工厂模式的变形(兄弟)
- 项目2-发工资
- 共享内存的处理
- Ubuntu14.04安装Pycharm4.5.3
- C#数据类型
- LeetCode Search a 2D Matrix II 数组
- docker的一些小命令
- 解释@Component @Controller @Service @Repository
- bp神经网络的简单理解和使用
- GOF(Group Of Four)23种设计模式之单例模式
- poj Jury Compromise 1015 (DP) 好题