Читайте также:
|
|
В этом примере состояние объектов, указанных в функции WaitForSingleObject изменяется в момент вызова функции.
Поток_1
если
свободен ––> WaitForSingleObject(Handle_Mutex, infinite) (или событие с автоматическим сбросом)
mutex
если не свободен – стоп.
При вызове функции WaitForSingleObject (…), если объект свободен, продолжает выполнение, а состояние объект изменится на противоположное (остальные процессы, в которых используется WaitForSingleObject() c этим Mutex будут ждать).
В случае функции WaitForMultipleObjects (когда 3-й параметр равен TRUE) – объекты указанные в массиве, переустанавливаются в занятое состояние до тех пор, пока не освобождаются все указанные объекты (сначала дождаться освобождения всех, затем устанавливать в занятое). Это сделано, чтобы избежать тупиков.
Это относится к функции WaitForMultipleObjects.
(если параметр равен TRUE), лишь одного объекта (если FALSE). Четвертый параметр – аналогичен последнему параметру предыдущей функции. Возвращаемое значение – индекс описателя в массиве описателей того объекта, который освободился (если освободилось несколько, то первого из освободившихся).
102Н – ни один из объектов в течение заданного времени не освободился.
Дата добавления: 2015-07-07; просмотров: 177 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Критические участки | | | Поток_1 Поток_2 |