Потоковые модели. Синхронизация потоков

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

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

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

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



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

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