|
Взаимные исключения
Объект типа взаимное исключение (mutex)
позволяет только одному потоку в данное время владеть
им. Если продолжать аналогии, то этот объект можно сравнить
с эстафетной палочкой.
Класс, инкапсулирующий взаимное исключение,
— TMutex — находится в модуле
IPCTHRD.PAS (пример IPCDEMOS).
Конструктор:
constructor Create
(const Name: string);
задает имя создаваемого объекта. Первоначально
он не принадлежит никому. (Но функция API
createMutex, вызываемая в нем, позволяет передать
созданный объект тому потоку, в котором это произошло.)
Далее метод
function Get(TimeOut:
Integer): Boolean;
производит попытку в течение
Timeout миллисекунд завладеть объектом (в этом
случае результат равен True).
Если объект более не нужен, следует вызвать метод
function Release:
Boolean;
Программист может использовать взаимное
исключение, чтобы избежать считывания и записи общей
памяти несколькими потоками одновременно.
|