Шаг 18 - Синхронизация

18_1.gif (25761 b)

Вы пишите приложение, которое добавляет заказчика к базе данных. Вы также создаете локальную не процессорную COM компоненту, которая обрабатывает новые заказы каждые пять минут. Приложение устанавливает эту компоненту в момент запуска. Как только компонента произведет обработку она модифицирует запись, что она обработана.

Вы хотите гарантировать, что и приложение и COM компонента не обращаются к той же самой записи в одно и тоже время. Что Вы должны делать ?

Правильный ответ D. Подобная ситуация решается объектами синхронизации. Но один должен создать объект синхронизации и установить блокировку, а другой должен проверять. Смотрим в вариантах A и B говориться только о коде либо на стороне клиента либо сервера. А в вариантах C и D о коде и у клиента и у сервера. Так что правильными должны быть последние варианты. При синхронизации на сервере создается объект синхронизации, а у клиента проверяется. Сам объект синхронизации нужно создавать. А в случае Mutex сервер создает (CreateMutex), a клиент открывает (OpenMutex). Да и вообще в варианте С создание объекта Mutex какое-то странное. Вот описание функции.

HANDLE CreateMutex
(  
	LPSECURITY_ATTRIBUTES,	// атрибуты
	BOOL bInitialOwner,	// инициализация
	LPCTSTR lpName		// имя обьекта
); 

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 05.09.2002