单线程应用程序(C ++)连续锁定,写入和解锁共享内存 - 每秒四次(循环以编程方式设置为每秒运行一次,并且循环中有4次写入且没有读取)。
EnterCriticalSection的(CS);
WriteToSharedMem();
LeaveCriticalSection(CS);
另一个应用程序(C)将每隔分钟访问此共享内存一次。
以这个速率写共享内存是否有任何问题?
Windows XP
C ++
答案 0 :(得分:8)
您提供的费率(每秒四次)不会导致问题,但you can't use critical sections across processes。您需要像mutex一样的内核级同步对象。
答案 1 :(得分:4)
完全没有。您可以每秒获得/释放数千(或数十或数十万)次锁定。您可以轻松地进行快速基准测试。
答案 2 :(得分:3)
按照这个速度肯定没有!这非常慢,但是我不确定Critical部分是你想要使用的,我记得它只能确保线程安全,而不是跨应用程序的安全性,你应该寻找别的东西来锁定共享内存。您必须使用一些Inter-Process Communication (IPC)机制来确保共享内存的原子操作。