Шаг 161.
Среда программирования Visual C++.
Архитектура СОМ. Потоковые модели. Однопоточная модель

    На этом шаге мы рассмотрим механизм функционирования однопоточной модели.

    В CОМ-сервере, поддерживающем однопоточную модель (single-threading model) все клиентские запросы методов ставятся в очередь единственного потока. Такие серверы пригодны только для однопоточных приложений, то есть для старых программ. Доступ к однопоточному компоненту очень эффективен для создавшего его потока, ведь он получает прямые указатели на поддерживаемые им интерфейсы. Однако запросы других потоков не в состоянии напрямую обращаться к указателям интерфейса - сервер поддерживает только один поток. Все остальные должны прибегнуть к маршалингу между представителем клиента и заглушкой в основном потоке сервера. Запросы из внешних потоков через представитель/заглушку помещаются в очередь сообщений сервера. Производительность внешних потоков существенно снижается за счет издержек маршалинга, а также того, что приоритет прямых запросов из "своего" потока выше и способен подавлять внешние запросы.

    На следующем шаге мы рассмотрим модель разделенных потоков.




Предыдущий шаг Содержание Следующий шаг