Язык

FileChannel.TryLock Метод

Определение

Перегрузки

Имя. Описание
TryLock()

Пытается получить монопольную блокировку файла этого канала.

TryLock(Int64, Int64, Boolean)

Пытается получить блокировку в заданном регионе файла этого канала.

TryLock()

Пытается получить монопольную блокировку файла этого канала.

[Android.Runtime.Register("tryLock", "()Ljava/nio/channels/FileLock;", "")]
public Java.Nio.Channels.FileLock? TryLock();
[<Android.Runtime.Register("tryLock", "()Ljava/nio/channels/FileLock;", "")>]
member this.TryLock : unit -> Java.Nio.Channels.FileLock

Возвращаемое значение

Объект блокировки, представляющий только что приобретенную блокировку или null если блокировка не удалось получить, так как другая программа содержит перекрывающуюся блокировку.

Атрибуты

Исключения

Значение , если файловый канал закрыт.

Если блокировка уже существует, которая перекрывает этот запрос блокировки или другой поток ожидает получения блокировки, которая будет перекрываться с этим запросом.

Если возникает какая-либо ошибка ввода-вывода.

Комментарии

Пытается получить монопольную блокировку файла этого канала.

Вызов этого метода формы fc.tryLock() ведет себя точно так же, как вызов

fc.{@link #tryLock(long,long,boolean) tryLock}(0L, Long.MAX_VALUE, false)

Java документации по java.nio.channels.FileChannel.tryLock().

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

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

TryLock(Int64, Int64, Boolean)

Пытается получить блокировку в заданном регионе файла этого канала.

[Android.Runtime.Register("tryLock", "(JJZ)Ljava/nio/channels/FileLock;", "GetTryLock_JJZHandler")]
public abstract Java.Nio.Channels.FileLock? TryLock(long position, long size, bool shared);
[<Android.Runtime.Register("tryLock", "(JJZ)Ljava/nio/channels/FileLock;", "GetTryLock_JJZHandler")>]
abstract member TryLock : int64 * int64 * bool -> Java.Nio.Channels.FileLock

Параметры

position
Int64

Позиция, с которой начинается заблокированный регион; должно быть не отрицательным

size
Int64

Размер заблокированного региона; должен быть не отрицательным, и сумма position>+>size должна быть не отрицательной.

shared
Boolean

trueзапрос общей блокировки для запроса монопольной блокировки false

Возвращаемое значение

Объект блокировки, представляющий только что приобретенную блокировку или null если блокировка не удалось получить, так как другая программа содержит перекрывающуюся блокировку.

Атрибуты

Исключения

Значение , если какие-либо параметры недопустимы.

Значение , если файловый канал закрыт.

Если блокировка уже хранится, которая перекрывает этот запрос блокировки или другой поток ожидает получения блокировки, которая будет перекрываться с этим запросом.

Если возникает какая-либо ошибка ввода-вывода.

Комментарии

Пытается получить блокировку в заданном регионе файла этого канала.

Этот метод не блокируется. Вызов всегда возвращается немедленно, либо получив блокировку запрошенного региона или не выполнив этого. Если не удается получить блокировку, так как перекрывающаяся блокировка удерживается другой программой, она возвращается null. Если не удается получить блокировку по какой-либо другой причине, возникает соответствующее исключение.

Регион, указанный positionsize параметрами, не должен содержаться внутри или даже перекрываться фактическим базовым файлом. Области блокировки фиксированы в размере; Если заблокированный регион изначально содержит конец файла, а файл выходит за пределы региона, то новая часть файла не будет охвачена блокировкой. Если ожидается, что размер файла увеличивается и блокировка всего файла требуется, то регион, начинающийся с нуля, и не меньше ожидаемого максимального размера файла, должен быть заблокирован. Метод нулевого аргумента #tryLock() просто блокирует область размера Long#MAX_VALUE.

Некоторые операционные системы не поддерживают общие блокировки, в этом случае запрос на общую блокировку автоматически преобразуется в запрос на монопольную блокировку. Можно ли проверить, является ли недавно приобретенная блокировка общим или эксклюзивным путем вызова метода результирующего объекта FileLock#isShared() isShared блокировки.

Блокировки файлов хранятся от имени всей Java виртуальной машины. Они не подходят для управления доступом к файлу несколькими потоками в одной виртуальной машине.

Java документации по java.nio.channels.FileChannel.tryLock(long, long, boolean).

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

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