На этом шаге мы рассмотрим механизм функционирования однопоточной модели.
В CОМ-сервере, поддерживающем однопоточную модель (single-threading model) все клиентские запросы методов ставятся в очередь единственного потока. Такие серверы пригодны только для однопоточных приложений, то есть для старых программ. Доступ к однопоточному компоненту очень эффективен для создавшего его потока, ведь он получает прямые указатели на поддерживаемые им интерфейсы. Однако запросы других потоков не в состоянии напрямую обращаться к указателям интерфейса - сервер поддерживает только один поток. Все остальные должны прибегнуть к маршалингу между представителем клиента и заглушкой в основном потоке сервера. Запросы из внешних потоков через представитель/заглушку помещаются в очередь сообщений сервера. Производительность внешних потоков существенно снижается за счет издержек маршалинга, а также того, что приоритет прямых запросов из "своего" потока выше и способен подавлять внешние запросы.
На следующем шаге мы рассмотрим модель разделенных потоков.