我正在创建一个显示市场数据的应用程序,并以其他形式使用它.我将市场数据存储在地图中
std::map<tickerId, StockData>.让我举一个关于如何使用这个地图的例子.
updatePrice(tickerId, latestPrice)updatePosition(tickerId, price)和updateStockScreen(tickerId, price).此外,从位置更新中分离Gui更新非常重要,因为GUI不是应用程序的主要优势.对有用书籍的一些参考也受到赞赏.
我是新人,并试图通过我的小知识实现太多,所以如果我问过愚蠢/形成错误的问题,请原谅我.
谢谢Shiv
这是关于线程安全的std::map.现在,同时读取是线程安全的,但写入不是.我的问题是,如果我每次都向地图添加唯一元素,那么它是否是线程安全的?
所以,举一个例子,如果我有这样的地图std:map<int, std::string> myMap
,我总是添加新的密钥,永远不会修改现有的键值,那么这是线程安全的吗?
更重要的是,这会给我任何随机的运行时行为吗?
添加新密钥是否也被视为修改?如果在添加时键总是不同的,那么它不应该是线程安全的,因为它修改了内存的独立部分吗?
谢谢Shiv
我有一个问题,每次在不同的主题中更新主题.因此,每当主题被更新时,它相应地用新信息更新观察者.但是,如果观察者列表很长,则需要一些时间来更新所有观察者.想想一个经常更新的主题.当主题正在更新观察者时,"主题"对象被锁定,因此不能由不同的线程更新.这将为主题创建信息流量或导致信息丢失.
您是否知道如何在多线程环境中处理这些问题?另外,有人可以推荐一些关于C++并行编程的书吗?
我有一个用C#编写的大程序,需要大约20分钟才能完成.该计划分为多个阶段,信息流是连续的.如果我的程序在说完第2步后失败了,我必须从头开始重新运行它.在某些内存中对象/服务等的每个步骤之后是否有更智能的方法来保存信息,可以直接用于运行第3步.这不是一个很好的描述,但我需要在最后调试程序,但为此我必须每次从头开始重新运行它.这种情况有没有工业实践?
谢谢Shiv