Потоковые модели. Разновидности потоковых моделей СОМ

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

   
Поскольку одному СОМ-объекту могут одновременно обращаться множество клиентов, Вы обязаны
обеспечить механизм синхронизации доступа к нему.

   
В общем случае за синхронизацию объектов отвечает операционная система. Важно понимать, как она это делает,
чтобы создавать компоненты, способные эффективно работать в многопоточной среде. В СОМ определены
четыре потоковые модели (threading models) упрощающие понимание и разработку для такой среды.

   
Потоковая модель описывает тип и степень безопасности потока, реализованных в компоненте. СОМ-компонент
может поддерживать одну из четырех моделей:

  • однопоточную;
  • разделенных потоков;
  • свободных потоков (многопоточную);
  • смешанную (одновременно поддерживает и однопоточную, и многопоточную модели).

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

   
Клиентское приложение независимо от собственной модели может свободно обращаться к СОМ-компоненту,
созданному на основе любой другой модели. Если модели клиента и сервера не совпадают, библиотека СОМ
предпринимает меры, чтобы они не нарушали работу потоков друг друга. Однако иногда это снижает общую производительность приложения.

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



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

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