Потоковые модели. Модель разделенных потоков

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

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

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

  • однопоточные (single-threaded apartment, STA) и
  • многопоточные (multithreaded apartment, MTA).

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

  • с помощью STA реализуется модель разделенных потоков;
  • с помощью МТА реализуется модель свободных потоков.

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

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



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий