FileLock Класс

Определение

Маркер, представляющий блокировку области файла.

[Android.Runtime.Register("java/nio/channels/FileLock", DoNotGenerateAcw=true)]
public abstract class FileLock : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.IAutoCloseable
[<Android.Runtime.Register("java/nio/channels/FileLock", DoNotGenerateAcw=true)>]
type FileLock = class
    inherit Object
    interface IAutoCloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Наследование
FileLock
Атрибуты
Реализации

Комментарии

Маркер, представляющий блокировку области файла.

Объект блокировки файла создается каждый раз при получении блокировки для файла с помощью одного из методов или класса или AsynchronousFileChannelAsynchronousFileChannel#lock(long,long,boolean,Object,CompletionHandler) lockAsynchronousFileChannel#tryLock(long,long,boolean) tryLock .FileChannel#tryLock(long,long,boolean) tryLockFileChannelFileChannel#lock(long,long,boolean) lock

Изначально допустимый объект блокировки файла. Он остается действительным до тех пор, пока блокировка не будет снята путем вызова #release release метода , закрытия канала, который использовался для его получения, или после завершения работы виртуальной машины Java в зависимости от того, что наступит раньше. Допустимость блокировки можно проверить, вызвав ее #isValid isValid метод .

Блокировка файла является монопольной или общей. Общая блокировка не позволяет другим параллельно работающим программам получить перекрывающуюся монопольную блокировку, но позволяет им получить перекрывающиеся общие блокировки. Монопольная блокировка не позволяет другим программам получить перекрывающиеся блокировки любого типа. После освобождения блокировка не оказывает дальнейшего влияния на блокировки, которые могут быть получены другими программами.

Является ли блокировка монопольной или общей, можно определить, вызвав ее #isShared isShared метод. Некоторые платформы не поддерживают общие блокировки. В этом случае запрос на общую блокировку автоматически преобразуется в запрос на монопольную блокировку.

Блокировки, удерживаемые на определенном файле одной виртуальной машиной Java, не перекрываются. Метод #overlaps overlaps можно использовать для проверки того, перекрывает ли диапазон потенциальной блокировки существующую блокировку.

Объект file-lock записывает файловый канал, в файле которого удерживается блокировка, тип и допустимость блокировки, а также положение и размер заблокированной области. Со временем может изменяться только срок действия блокировки; все остальные аспекты состояния блокировки являются неизменяемыми.

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

Объекты блокировки файлов безопасны для использования несколькими параллельными потоками.

"pdep"><h2> Зависимости платформы </h2>

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

Указывает, не позволяет ли блокировка другой программе получить доступ к содержимому заблокированного региона, зависит от системы и, следовательно, не указана. Собственные средства блокировки файлов в некоторых системах являются всего лишь рекомендациями. Это означает, что программы должны совместно соблюдать известный протокол блокировки, чтобы гарантировать целостность данных. В других системах собственные блокировки файлов являются обязательными. Это означает, что если одна программа блокирует область файла, то другие программы фактически не смогут получить доступ к этому региону таким образом, чтобы нарушить блокировку. В других системах, независимо от того, являются ли собственные блокировки файлов консультативными или обязательными, можно настроить для каждого файла. Чтобы обеспечить согласованное и правильное поведение на разных платформах, настоятельно рекомендуется использовать блокировки, предоставляемые этим API, как если бы они были рекомендуемыми.

В некоторых системах получение обязательной блокировки в области файла предотвращает использование этой области java.nio.channels.FileChannel#map <i>mapped into memory</i>и наоборот. Программы, сочетающие блокировку и сопоставление, должны быть подготовлены к сбою этой комбинации.

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

Некоторые сетевые файловые системы позволяют использовать блокировку файлов с файлами, сопоставленными в памяти, только если заблокированные области выровнены по страницам и кратны размеру страницы базового оборудования. Некоторые сетевые файловые системы не реализуют блокировки файлов в регионах, которые выходят за пределы определенной позиции, часто 2<sup 30</sup> или 2<sup>31</sup>>. Как правило, следует соблюдать осторожность при блокировке файлов, находящихся в сетевых файловых системах.

Добавлено в версии 1.4.

Документация по Java для java.nio.channels.FileLock.

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License Creative Commons 2.5 Attribution License.

Конструкторы

FileLock(AsynchronousFileChannel, Int64, Int64, Boolean)

Инициализирует новый экземпляр этого класса.

FileLock(FileChannel, Int64, Int64, Boolean)

Инициализирует новый экземпляр этого класса.

FileLock(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Свойства

Class

Возвращает класс среды выполнения данного объекта Object.

(Унаследовано от Object)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
IsShared

Указывает, является ли эта блокировка общей.

IsValid

Указывает, является ли эта блокировка допустимой блокировкой файла.

JniIdentityHashCode

Маркер, представляющий блокировку области файла.

(Унаследовано от Object)
JniPeerMembers

Маркер, представляющий блокировку области файла.

PeerReference

Маркер, представляющий блокировку области файла.

(Унаследовано от Object)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

AcquiredBy()

Возвращает канал, по файлу которого была получена эта блокировка.

Channel()

Возвращает файловый канал, по файлу которого была получена эта блокировка.

Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Close()

Этот метод вызывает #release метод .

Dispose()

Маркер, представляющий блокировку области файла.

(Унаследовано от Object)
Dispose(Boolean)

Маркер, представляющий блокировку области файла.

(Унаследовано от Object)
Equals(Object)

Указывает, равен ли какой-то другой объект этому объекту.

(Унаследовано от Object)
GetHashCode()

Возвращает значение хэш-кода для объекта.

(Унаследовано от Object)
JavaFinalize()

Вызывается сборщиком мусора для объекта , когда сборка мусора определяет, что больше нет ссылок на объект .

(Унаследовано от Object)
Notify()

Пробуждение одного потока, ожидающего на мониторе этого объекта.

(Унаследовано от Object)
NotifyAll()

Активирует все потоки, ожидающие на мониторе этого объекта.

(Унаследовано от Object)
Overlaps(Int64, Int64)

Указывает, перекрывает ли эта блокировка заданный диапазон блокировки.

Position()

Возвращает позицию в файле первого байта заблокированной области.

Release()

Снимает эту блокировку.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
Size()

Возвращает размер заблокированной области в байтах.

ToArray<T>()

Маркер, представляющий блокировку области файла.

(Унаследовано от Object)
ToString()

Возвращает строку, описывающую диапазон, тип и допустимость этой блокировки.

UnregisterFromRuntime()

Маркер, представляющий блокировку области файла.

(Унаследовано от Object)
Wait()

Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления/><em> или <прерывания></em>.

(Унаследовано от Object)
Wait(Int64)

Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> em, либо до истечения определенного количества реального времени.

(Унаследовано от Object)
Wait(Int64, Int32)

Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> em, либо до истечения определенного количества реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

IJavaPeerable.Disposed()

Маркер, представляющий блокировку области файла.

(Унаследовано от Object)
IJavaPeerable.DisposeUnlessReferenced()

Маркер, представляющий блокировку области файла.

(Унаследовано от Object)
IJavaPeerable.Finalized()

Маркер, представляющий блокировку области файла.

(Унаследовано от Object)
IJavaPeerable.JniManagedPeerState

Маркер, представляющий блокировку области файла.

(Унаследовано от Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Маркер, представляющий блокировку области файла.

(Унаследовано от Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Маркер, представляющий блокировку области файла.

(Унаследовано от Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Маркер, представляющий блокировку области файла.

(Унаследовано от Object)

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверенное средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Маркер, представляющий блокировку области файла.

GetJniTypeName(IJavaPeerable)

Маркер, представляющий блокировку области файла.

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