单线程应用程序 (C++) 连续锁定、写入和解锁共享内存 -每秒四次(循环被编程设置为每秒运行一次,循环中有 4 次写入且没有读取)。
EnterCriticalSection(cs);
WriteToSharedMem();
LeaveCriticalSection(cs);
另一个应用程序 (C) 将每隔几分钟访问此共享内存一次。
以这种速度写入共享内存有什么问题吗?
Windows XP
C++
单线程应用程序 (C++) 连续锁定、写入和解锁共享内存 -每秒四次(循环被编程设置为每秒运行一次,循环中有 4 次写入且没有读取)。
EnterCriticalSection(cs);
WriteToSharedMem();
LeaveCriticalSection(cs);
另一个应用程序 (C) 将每隔几分钟访问此共享内存一次。
以这种速度写入共享内存有什么问题吗?
Windows XP
C++
您给出的速率(每秒四次)不会造成问题,但您不能跨进程使用临界区。您需要一个内核级同步对象,例如mutex。
一点也不。您每秒可以获取/释放锁数千次(或数万次或数十万次)。您可以轻松地进行快速基准测试。
以这个速度绝对没有!这非常慢,但是我不确定关键部分是你想要使用的,我记得它只确保线程安全,而不是跨应用程序安全,你应该寻找其他东西来锁定共享内存。您必须使用一些进程间通信 (IPC)机制来确保使用共享内存进行原子操作。