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