我在C ++项目中实现了一个观察者模式。
我的问题是,我该如何同步内存操作? 当我的XML阅读器想要发布一些标记/值时,它应该获得一个未使用的内存块并“锁定”它以使其无法进行编辑。一旦所有“处理对象”都与内存完成,它们应该能够“解锁”以供进一步使用。
我怎样才能做到这一点?请帮忙。
答案 0 :(得分:4)
你签出了boost shared memory吗?它有各种synchronization mechanisms和例子......
如果要将互斥锁放在共享内存块本身中,则进程间库中概述的同步机制特别有用。
答案 1 :(得分:1)
我认为你的主要任务不是学习/开发同步机制。
您应该重用现有的可用组件,并且有很多组件。这非常好http://www.rabbitmq.com/getstarted.html
它将支持多种(包括分布式/网络)模型。虽然可能有初始学习期,但一旦集成,您可以继续使用它进行功能扩展,而不是专注于解决问题。