C++:提升:托管共享内存是否需要信号量锁

C++:Boost: Does Managed Shared Memory Require a Semaphore lock?

本文关键字:是否 信号量 共享 提升 C++ 内存      更新时间:2023-10-16

我有两个进程共享一个字符串向量。

  • 进程 A 只会将字符串推送到向量中
  • 进程 B 将读取字符串并将其从向量中删除

这是否需要信号灯以防止数据损坏?提升是否已经使用managed_shared_memory处理此问题?

谢谢

据我所知,boost处理它。此页面应包含您需要的所有信息

"Boost.Interprocess使用managed_shared_memory或managed_mapped_file在进程之间提供托管共享内存。两个进程只是映射相同的内存可映射资源,并读取和写入该对象。

Boost 托管共享内存确实需要信号量锁,否则进程可能会读取和写入错误数据,并且会发生意外行为。(分段错误或其他)。