【发布时间】:2017-02-02 00:53:37
【问题描述】:
我有两个进程共享一个字符串向量。
- 进程 A 只会将字符串推入向量中
- 进程 B 将读取字符串并将其从向量中删除
这是否需要信号量来防止数据损坏? boost 是否已经使用 managed_shared_memory 处理了这个问题?
谢谢
【问题讨论】:
标签: c++ boost shared-memory
我有两个进程共享一个字符串向量。
这是否需要信号量来防止数据损坏? boost 是否已经使用 managed_shared_memory 处理了这个问题?
谢谢
【问题讨论】:
标签: c++ boost shared-memory
据我所知,boost 可以处理它。 This page should have all the information you need
“Boost.Interprocess 使用 managed_shared_memory 或 managed_mapped_file 在进程之间提供托管共享内存。两个进程只需映射相同的内存可映射资源并读取和写入该对象。”
【讨论】:
Boost 托管共享内存确实需要信号量锁,否则进程可以读取和写入错误数据 - 并且会发生意外行为。 (分段错误或其他)。
【讨论】: