用户模式下的线程同步
2015-08-13 13:51
417 查看
关键段
关键段(critical section)是一小段代码,它在执行之前需要独占对一些共享资源的访问权。CRITICAL_SECTION g_cs; int g_nSum = 0; InitializeCriticalSection(&g_cs); EnterCriticalSection(&g_cs); g_nSum++; LeaveCriticalSection(&g_cs); DeleteCriticalSection(&g_cs);
Slim读/写锁
SRWLock的目的和关键段相同,对同一资源进行保护,不让其他线程访问它。但是,与关键段不同的是,SRWLock允许我们区分那些(读取者线程)和(写入者线程)。让所有的读取者线程在同一时刻访问共享资源应该是可行的,这是因为仅仅读取资源的值并不存在破坏数据的风险。SRWLOCK g_srwLock; InitializeSRWLock(&g_srwLock); //写入者线程调用 AcquireSRWLockExclusive(&g_srwLock); ReleaseSRWLockExclusive(&g_srwLock); //读取者线程调用 AcquireSRWLockShared(&g_srwLock); ReleaseSRWLockShared(&g_srwLock);
相关文章推荐
- Spring MVC 中的基于注解的 Controller
- hdu 5371 Hotaru's problem
- virtualbox下 ubuntu 14.04设置外网独立IP
- 单例模式2-GCD实现单例模式
- C++字符串、向量和数组笔记
- SDN开源,从你的全世界路过
- 程序运行在X86和X64机器上由字节分配不一样引发的问题
- mac os x 设置 jenkins开机启动遇到的问题
- HTTP POST和GET区别简介
- Copy List with Random Pointer
- RSA和DES------加密和解密类
- android 官方教程中文版
- ios8新特性widget开发(自定义的通知栏样式)
- AT指令操作GPRS Modem实现网络传输
- 动态调用WebService的方法
- Fragment进阶(一)----->静态
- 解决在Cygwin中使用Repo报 decode UTF-8的问题
- mysql遇到的一些问题
- 实现文字部分加粗
- Uncaught TypeError: Cannot read property 'options' of undefined 错误