1

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

EnterCriticalSection(cs);
WriteToSharedMem();
LeaveCriticalSection(cs);

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

以这种速度写入共享内存有什么问题吗?

Windows XP
C++

4

3 回答 3

8

您给出的速率(每秒四次)不会造成问题,但您不能跨进程使用临界区。您需要一个内核级同步对象,例如mutex

于 2012-09-17T22:56:03.477 回答
4

一点也不。您每秒可以获取/释放锁数千次(或数万次或数十万次)。您可以轻松地进行快速基准测试。

于 2012-09-17T22:51:35.537 回答
3

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

于 2012-09-17T22:55:58.407 回答