Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Пример 2. В этом примере состояние объектов, указанных в функции WaitForSingleObject изменяется в момент вызова функции.






В этом примере состояние объектов, указанных в функции WaitForSingleObject изменяется в момент вызова функции.

Поток_1

 

если

свободен ––> WaitForSingleObject(Handle_Mutex, infinite) (или событие с автоматическим сбросом)

mutex

 

если не свободен – стоп.

При вызове функции WaitForSingleObject (…), если объект свободен, продолжает выполнение, а состояние объект изменится на противоположное (остальные процессы, в которых используется WaitForSingleObject() c этим Mutex будут ждать).

В случае функции WaitForMultipleObjects (когда 3-й параметр равен TRUE) – объекты указанные в массиве, переустанавливаются в занятое состояние до тех пор, пока не освобождаются все указанные объекты (сначала дождаться освобождения всех, затем устанавливать в занятое). Это сделано, чтобы избежать тупиков.

Это относится к функции WaitForMultipleObjects.

(если параметр равен TRUE), лишь одного объекта (если FALSE). Четвертый параметр – аналогичен последнему параметру предыдущей функции. Возвращаемое значение – индекс описателя в массиве описателей того объекта, который освободился (если освободилось несколько, то первого из освободившихся).

102Н – ни один из объектов в течение заданного времени не освободился.

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.005 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал