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

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

    Модель разделенных потоков (apartment-threading model) позволяет всем клиентам получать прямой указатель на интерфейс компонента, не прибегая к услугам представителя/заглушки. Отделение (apartment) - это логическая структура для параллельной работы потоков, которая создается при вызове потоком API-функции CoInitializeEx() для инициализации библиотеки СОМ. Отделение связывается с одним или несколькими потоками и одним или множеством СОМ-объектов. Поскольку все объекты отделения поддерживают модель разделенных потоков, все потоки в этом отделении получают прямые указатели интерфейса на все его объекты.

    Терминология отделений и разделенных потоков некоторым кажется довольно запутанной, потому что существуют два типа отделений:

    Различие между ними таково:

    Процесс может содержать любое число STA-отделений (в каждом из которых имеется единственный поток), но всего лишь одно МТА-отделение - с любым количеством потоков.

    На следующем шаге мы рассмотрим однопоточные отделения.




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