Я создаю приложение, которое отображает рыночные данные и использует его в некоторых других формах. Я храню рыночные данные на карте.
std::map<tickerId, StockData>
. Позвольте мне привести один использованный случай использования этой карты.
- сеть отправляет пакет данных, инкапсулирующий данные запаса в момент времени t.
updatePrice(tickerId, latestPrice)
- обновить данные запаса на карте. Теперь несколько потоков могут получить доступ/обновить данные. Таким образом, карта должна быть заблокирована для потокобезопасных операций. Вот первый вопрос: мне нужно также блокировать базовые данные для обновлений?
- Существует множество применений новых данных о запасах, скажем, есть обновление цены на IBM, тогда мне нужно обновить стоимость IBM в моем портфолио. Также отобразите новые данные на экране. И может быть несколько других одновременных применений.
updatePosition(tickerId, price)
иupdateStockScreen(tickerId, price)
. Кроме того, разделение обновлений Gui с обновлением позиции важно, поскольку графический интерфейс не является основной силой приложения. - Я просто обеспокоен тем, как реализовать этот тип дизайна. Я прочитал о модели/представлении дизайна в QT для отображения данных, но если View thread читает с той же карты, он должен быть заблокирован. Это приводит к медленному/неэффективному дизайну. Каждый раз, когда вид читается с модели, модель должна быть заблокирована. Является ли это предпочтительным графическим интерфейсом в реальном времени?
- Подводя итог, я сохранил много разных объектов в качестве карт. И объекты обновляются в реальном времени. Мне нужно обновить их, а затем использовать их в разных местах. Было бы здорово, если бы кто-нибудь мог дать мне небольшой пример того, как реализовать такие проекты.
Некоторые ссылки на полезные книги также ценятся.
Я новичок и стараюсь добиться слишком многого с моими небольшими знаниями, поэтому простите меня, если я задал глупые/плохо сформированные вопросы.
Спасибо Шив