Slim读写锁

和关键段不同的是区分读入者线程和写入者线程。读和写共用一个锁,后边的条件变量触发条件也是一个锁

占用锁的时间越少越好,如果被长时间占用,那么其他线程总是在被等待的状态,对程序性能有影响。 

SRWLOCK结构体 包含于头文件  <Windows.h>

VOID InitializeSRWLock(PSRELOCK SRWLock);                                                     //锁的初始化,只需要初始化一次

写入者线程:  VOID AcquireSRWLockExclusive(PSRELOCK SRWLock);               //申请锁,开始写入

                       VOID ReleaseSRWLockExclusive(PSRELOCK SRWLock);              //释放锁,写入完成后

读取者线程:  VOID AcquireSRWLockShared(PSRELOCK SRWLock);                  //锁可以在不同时候不断申请、释放

                       VOID ReleaseSRWLockShared(PSRELOCK SRWLock);

Slim读写锁的性能大多时候优于关键段,而且Slim锁执行读操作的性能要优于写操作的性能,这是因为两个线程可以同时读取,而需要执行写操作的线程之间是互斥的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值