我正在用Linux中的c/C++开发一些程序。我的问题是:LInux/C++,如何同时保护两个数据结构?
- 我有一个名为库中的上层阶级,其内部也有它使用unordered_map的数据结构和手持订单,其中有2个的std ::在侧列表中的OrderMap。
- OrderMap和OrderBook都存储Order *作为元素,它们共享一个Order对象,该对象在堆上分配。所以无论是OrderBook还是OrderMap都会修改其中的顺序。
- 我有两个线程会对它们执行读写操作。 2个线程可以插入/修改/检索(读取)/删除元素。
我的问题是:如何保护这个“Vault”的大结构?我实际上可以保护地图或列表,但我不知道如何同时保护它们。
有人给我一些想法吗?
OT:我不能是唯一一个在使用'unordered_map'实现OrderMap时看到讽刺意味的事情。 – WhozCraig
我只想用一个额外的锁来保护结构。 – Voo
@WhozCraig:好吧,因为它是一个无序Order对象的映射,我不太明白这个讽刺(除了与OrderedMap明显的名字相似之外)。 – JBarberU