欢迎光临散文网 会员登陆 & 注册

读写者问题 读写锁SRWLock-秒杀多线程

2023-03-22 20:48 作者:ベ计院小白隆ミ  | 我要投稿

读写锁在对资源进行保护的同时,还能区分想要读取资源值的线程(读取者线程)和想要更新资源的线程(写入者线程)。对于读取者线程,读写锁会允许他们并发的执行。当有写入者线程在占有资源时,读写锁会让其它写入者线程和读取者线程等待。因此用读写锁来解决读者写者问题会使代码非常清晰和简洁。

读写锁的主要函数就五个,分为初始化函数,写入者线程申请和释放函数,读取者线程申请和释放函数,以下是详细的函数使用说明:

InitializeSRWLock

函数功能:初始化读写锁

函数原型:

函数说明:初始化(没有删除或销毁SRWLOCK的函数,系统会自动清理)


AcquireSRWLockExclusive

函数功能:写入者线程申请写资源。

函数原型:


ReleaseSRWLockExclusive

函数功能:写入者线程写资源完毕,释放对资源的占用。

函数原型:


AcquireSRWLockShared

函数功能:读取者线程申请读资源。

函数原型:


ReleaseSRWLockShared

函数功能:读取者线程结束读取资源,释放对资源的占用。

函数原型:

注意一个线程仅能锁定资源一次,不能多次锁定资源。



代码


参考:https://blog.csdn.net/morewindows/article/details/7650574


读写者问题 读写锁SRWLock-秒杀多线程的评论 (共 条)

分享到微博请遵守国家法律