如何保护两个进程之间共享内存中的字符串?

T.T*_*.T. 2 c++ windows winapi ipc shared-memory

我有一块共享内存,其中包含两个进程之间的字符字符串和整数。

进程 A 写入它,进程 B 读取它(反之亦然)

确保进程 A 不会在进程 B 读取它的同时更新(写入)它的最有效和最有效的方法是什么?(我应该只在共享内存中使用标志,使用信号量,临界区......)

如果您能指出我正确的方向,我将不胜感激。

谢谢。

视窗,C++

Pra*_*ian 5

您不能使用临界区,因为它们只能用于同一进程内的线程之间的同步。对于进程间同步,您需要使用MutexSemaphore。这两者的区别在于前者只允许单个线程拥有一个资源,而后者最多可以允许最大数量(在创建时指定)同时拥有该资源。

在您的情况下,互斥体似乎合适。