Semaphore.AcquireUninterruptibly Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
| Имя. | Описание |
|---|---|
| AcquireUninterruptibly() |
Получает разрешение от этого семафора, блокируя до тех пор, пока он не будет доступен. |
| AcquireUninterruptibly(Int32) |
Получает заданное количество разрешений от этого семафора, блокируя до тех пор, пока все не будут доступны. |
AcquireUninterruptibly()
Получает разрешение от этого семафора, блокируя до тех пор, пока он не будет доступен.
[Android.Runtime.Register("acquireUninterruptibly", "()V", "GetAcquireUninterruptiblyHandler")]
public virtual void AcquireUninterruptibly();
[<Android.Runtime.Register("acquireUninterruptibly", "()V", "GetAcquireUninterruptiblyHandler")>]
abstract member AcquireUninterruptibly : unit -> unit
override this.AcquireUninterruptibly : unit -> unit
- Атрибуты
Комментарии
Получает разрешение от этого семафора, блокируя до тех пор, пока он не будет доступен.
Получает разрешение, если он доступен и возвращается немедленно, уменьшая число доступных разрешений на один.
Если разрешение недоступно, текущий поток становится отключенным для целей планирования потоков и находится в неактивном состоянии, пока другой поток не вызовет #release метод для этого семафора, а текущий поток рядом с разрешением.
Если текущий поток — Thread#прерывание при ожидании разрешения, оно будет продолжать ждать, но время назначения потока может измениться по сравнению с временем, когда он получил разрешение не было бы прерывания. Когда поток возвращается из этого метода, его состояние прерывания будет задано.
Java документации по java.util.concurrent.Semaphore.acquireUninterruptibly().
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".
Применяется к
AcquireUninterruptibly(Int32)
Получает заданное количество разрешений от этого семафора, блокируя до тех пор, пока все не будут доступны.
[Android.Runtime.Register("acquireUninterruptibly", "(I)V", "GetAcquireUninterruptibly_IHandler")]
public virtual void AcquireUninterruptibly(int permits);
[<Android.Runtime.Register("acquireUninterruptibly", "(I)V", "GetAcquireUninterruptibly_IHandler")>]
abstract member AcquireUninterruptibly : int -> unit
override this.AcquireUninterruptibly : int -> unit
Параметры
- permits
- Int32
количество разрешений для получения
- Атрибуты
Исключения
Значение
Комментарии
Получает заданное количество разрешений от этого семафора, блокируя до тех пор, пока все не будут доступны.
Получает указанное количество разрешений, если они доступны, и возвращает немедленно, уменьшая количество доступных разрешений по заданному количеству. Этот метод имеет тот же эффект, что и цикл for (int i = 0; i < permits; ++i) acquireUninterruptibly(); , за исключением того, что он атомарно получает разрешения сразу:
Если доступны недостаточные разрешения, текущий поток становится отключенным для целей планирования потоков и находится в неактивном состоянии, пока другой поток не вызовет один из #release() release методов для этого семафора, а текущий поток рядом с разрешениями и число доступных разрешений удовлетворяет этому запросу.
Если текущий поток — Thread#прерывание при ожидании разрешений, то он будет продолжать ждать, а его положение в очереди не затрагивается. Когда поток возвращается из этого метода, его состояние прерывания будет задано.
Java документации по java.util.concurrent.Semaphore.acquireUninterruptibly(int).
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".