Ну, я предполагаю, что это больше теоретический вопрос для тех, кто знаком с hft. Я получаю заказы от FAST и обрабатываю их. Я получаю около 2 -3 тысяч заказов в секунду. Вопрос в том, должен ли я пытаться обрабатывать их синхронно или асинхронно.
Каждый раз, когда я получаю следующий заказ, мне нужно сделать следующее:
Чтобы сделать это синхронно, у меня есть около 200 -300 мкс (, чтобы иметь возможность обрабатывать 3000 заказов в секунду ). Этого должно быть достаточно, я думаю.
Просто чтобы запланировать асинхронную задачу я потратил думаю ~30 мкс
Плюсы и минусы:
Синхронный:
Асинхронный:
Пример синхронизации :Мы получаем обновление заказа MSFT, а затем обновление заказа INTC и обрабатываем их в разных потоках.В обоих случаях мы запускаем пересчет индекса NASDAQ. Поэтому расчет индекса NASDAQ должен быть синхронизирован. Однако эту конкретную проблему можно обойти, чтобы избежать синхронизации... Это просто пример возможной синхронизации.
Итак, вопрос в том, должен ли я обрабатывать обновления заказов синхронно или асинхронно. Пока я обрабатываю их асинхронно, и у меня есть выделенный поток для каждого инструмента. Потому что я могу обрабатывать асинхронно два обновления для разных инструментов (MSFT и INTC ), но два обновления для одного инструмента (MSFT )должны обрабатываться синхронно.