Язык

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 и используемых в соответствии с условиями, описанными в разделе "".

Применяется к