многопоточность
Atom
09.06.2010


Скажите, а начиная с какого места Stock# является многопоточным?

Создает ли новые потоки сам QuickTrade, если пользоваться лишь его
событиями типа NewTrade и т.п. и не использовать встроенные стратегии?

Теги:


Спасибо:


Mikhail Sukhov

Фотография
Дата: 09.06.2010
Ответить


События вызываются в другом потоке.

Спасибо:

sergun

Фотография
Дата: 09.06.2010
Ответить


т.е. создается всего один доп.поток и в нем вызываются обработчики?

Спасибо:

sergun

Фотография
Дата: 17.06.2010
Ответить


Михаил,

не могли бы уточнить, все ли события QuikTrader работают в одном
дополнительном потоке?

В примере SampleConsole событие Connected ожидает появления
инструментов (NewSecurities)
с помощью ManualResetEvent.

Получается эти два события находятся в разных потоках (иначе бы
выполнение блокировалось).

Прав ли я, что в отдельном одном дополнительном потоке исполняется DDE
сервер и, соответственно,
лишь те события QuikTrader, которые связаны с приходом данных по DDE,
а все остальные обработчики (Connected, Disconnected и т.д.) - это
основной поток?

Спасибо:

Mikhail Sukhov

Фотография
Дата: 17.06.2010
Ответить


Реализация меняется от версии к версии. Лучше на это на завязываться.
Главное - что событие могут приходить в других потоках.
Соответственно, работу с общими данные нужно синхронизировать.

Спасибо:

sergun

Фотография
Дата: 17.06.2010
Ответить


Уточню, мой вопрос касается многопоточности именно в неком ядре
StockSharp (сам Trader, его обработчики).
Вопрос не касается стратегий, менеджера стратегий и т.п.

Какова здесь метафора системы? :-)
Пользуем критические секции повсеместно? или же считаем, что все
обработчики, занимающиеся получением данных от торговой системы,
работают по принципу "однопоточный I/O" (что возможно было бы
логично.. пусть следующие "уровни" распараллеливают)?

Спасибо:

sergun

Фотография
Дата: 17.06.2010
Ответить


Возник еще один вопрос.
Являются ли методы и свойства QuikTrader thread-safe?
Спасибо:

Mikhail Sukhov

Фотография
Дата: 17.06.2010
Ответить


Да, потокобезопасно.

Насчет событий. Событие отправляющие поочередно. Тоесть, нет такого,
чтобы сначала пришло событие об отмене заявки, а потом об успешной
регистрации. Но пространство для маневра я хочу себе оставить. В
прошлых версиях все вызывалось из пула (а пул - это вещь вообще не
деторминированная). В текущей - все в одном потоке (не основном). В
новой версии - каждое событие в своем... Я пока не пришел к понимаю
единственно правильного. Но что будет всегда и точно - это то, что
данные, к которым идет обращение из обработчиков событий необходимо
синхронизовывать. Секциями или еще как - главное надо.

Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy