Экспорт стакана - многопоточность
Здравствуйте,
не могли бы вы ответить на пару следующих вопросов:
1. Допустим есть несколько стратегий: "стратегия_1", "стратегия_2", ..., "стратегия_N". Логика каждой из них обслуживается отдельным потоком,
таким образом имеется N потоков, каждый из которых соответствует своей стратегии. Каждый поток реагирует на изменение цены любого инструмента,
принадлежащего какому-то набору (каждый поток следит за своим набором инструментов). Подскажите, пожалуйста, какой метод донесения информации до каждого
из потоков является самым правильным и быстрым? Логика, которую я имею в виду в этом вопросе: если мы сначала вызываем trader.RegisterQuotes
для всех инструментов, с которыми будут работать ВСЕ наши стратегии, а потом подписываемся на событие trader.QuotesChanged, то изменение в стакане для любого из
ранее зарегестрированных инструментов приведет к срабатыванию данного события. Но, насколько я понимаю, все подписчики на данное событие будут исполняться
только в одном потоке. Это верное утверждение? Если да, то как лучше всего реализуется идея "сколько стратегий, столько и тредов"? А если нет, то как
исполнять обработчики данного события в разных тредах (как подписать тред на событие "изменение стакана")?
2. Если говорить только о скорости, то как быстрее получать информацию о "цене" инструмента: подписаться на таблицу всех сделок и фильтровать каждую сделку
на предмет того или иного инструмента или экспортировать стаканы тех инструментов, за которыми хотим следить и подписаться на изменение данных в стакане?
Заранее благодарю за ответы.