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

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

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

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

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




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