Модель потока |
Описание |
Преимущества и недостатки модели |
||
Single |
Без поддержки потоков. Запросы клиента обрабатываются последовательно, один за другим |
Клиенты обрабатываются в порядке очереди, поэтому потоковой поддержки не требуется |
||
Apartment |
Клиенты могут вызывать методы объекта только из того потока, в котором был создан сам объект. Разные объекты одного сервера могут быть вызваны из разных потоков, но каждый объект может быть вызван только из одного потока |
Данные экземпляра находятся в безопасности, глобальные данные должны быть защищены при помощи критической секции или другим способом. Объекты просты в написании, но написание кода клиента может быть достаточно трудным. Первоначально использовалась для элементов управления обозревателей Web |
||
Free |
Клиенты могут вызывать любые методы объекта в любое время и из любых потоков. Количество потоков неограничено |
Нужно защищать все данные экземпляров и глобальные данные объекта. Локальные переменные не надежны из-за многочисленных вызовов. Клиенты просты в написании, но написание кода объектов может вызывать трудности. Первоначально использовалась для реализации технологии DCOM |
||
Both |
Объекты могут поддерживать клиентов, которые используют модели Apartment или Free |
Максимальная гибкость и улучшение работы |
||