写入共享内存的频率限制

Frequency limit of writing to shared memory?

本文关键字:频率 内存 共享      更新时间:2023-10-16

单线程应用程序 (C++) 连续锁定、写入和解锁共享内存 - 每秒四次(循环以编程方式设置为每秒运行一次,循环中有 4 次写入,没有读取)。

输入关键部分(cs);
WriteToSharedMem();
离开关键部分(cs);

另一个应用程序 (C) 将每隔几分钟访问一次此共享内存。

以这种速率写入共享内存是否有任何问题?

视窗 XP
C++

您给出的速率(每秒四次)不会引起问题,但您不能跨流程使用关键部分。您需要一个内核级同步对象,如互斥锁。

完全没有。 您可以每秒获取/释放锁数千次(或数万或数十万次)。 您可以轻松地进行快速基准测试以查看。

按照这个速度,绝对没有!这非常慢,但是我不确定关键部分是否是您想要使用的,我记得它的方式只确保线程安全,而不是跨应用程序安全,您应该寻找其他东西来锁定共享内存。您必须使用一些进程间通信 (IPC) 机制来确保使用共享内存进行原子操作。