首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有什么想法通知所有的客户端进程一个资源已经在窗口上准备好了(使用C++)?

有什么想法通知所有的客户端进程一个资源已经在窗口上准备好了(使用C++)?
EN

Stack Overflow用户
提问于 2022-01-14 07:43:48
回答 1查看 54关注 0票数 0

我有一个共享内存供其他进程读取,读取进程的数量可能不止一个。

我需要一把锁,它大部分时间都锁着。当更新应用到共享内存上时,它将被解锁并再次快速锁定。

读取过程可以使用此锁接收更新通知。当读取进程(Es)成功地获得锁时,它意味着共享内存被更新.当读取进程无法使用TIME_OUT的结果锁定时,这意味着共享内存中没有更新。

当共享内存得到一些更新并解锁时,ALL读取进程就可以获得锁。

有办法解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-14 07:56:00

对于不同的用例,有不同的同步原语。锁定的目的是确保每次对资源的单一访问。但是,要向一群读者发出一些数据已经准备好的信号,您应该使用一个事件。

来自Microsoft关于事件对象的信息:

应用程序可以使用事件对象来防止多个线程在主线程向该缓冲区写入时从共享内存缓冲区中读取。

您将使用CreateEvent来创建您的事件对象,然后在您的使用者线程中使用WaitForSingleObject (或任何其他等待函数),并使用SetEvent来表示数据已经就绪。ResetEvent函数可以用来表示使用者线程不应该使用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70707431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档