写入共享内存的频率限制?

时间:2012-09-17 22:48:54

标签: c++ c windows memory shared-memory

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

  

EnterCriticalSection的(CS);
    WriteToSharedMem();
  LeaveCriticalSection(CS);

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

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

Windows XP
C ++

3 个答案:

答案 0 :(得分:8)

您提供的费率(每秒四次)不会导致问题,但you can't use critical sections across processes。您需要像mutex一样的内核级同步对象。

答案 1 :(得分:4)

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

答案 2 :(得分:3)

按照这个速度肯定没有!这非常慢,但是我不确定Critical部分是你想要使用的,我记得它只能确保线程安全,而不是跨应用程序的安全性,你应该寻找别的东西来锁定共享内存。您必须使用一些Inter-Process Communication (IPC)机制来确保共享内存的原子操作。