FileLock Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Маркер, представляющий блокировку в регионе файла.
[Android.Runtime.Register("java/nio/channels/FileLock", DoNotGenerateAcw=true)]
public abstract class FileLock : Java.Lang.Object, IDisposable, 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
- Наследование
- Атрибуты
- Реализации
Комментарии
Маркер, представляющий блокировку в регионе файла.
Объект блокировки файлов создается каждый раз, когда блокировка приобретается в файле с помощью одного из FileChannel#lock(long,long,boolean) lockFileChannel#tryLock(long,long,boolean) tryLock методов FileChannel класса или AsynchronousFileChannel#lock(long,long,boolean,Object,CompletionHandler) lockAsynchronousFileChannel#tryLock(long,long,boolean) tryLock методов AsynchronousFileChannel класса.
Изначально допустимый объект блокировки файлов. Он остается действительным до тех пор, пока блокировка не будет освобождена путем вызова #release release метода, закрыв канал, который использовался для его получения, или путем завершения Java виртуальной машины, в зависимости от того, что происходит в первую очередь. Допустимость блокировки может быть проверена путем вызова метода #isValid isValid .
Блокировка файла является монопольной или общей. Общая блокировка предотвращает получение перекрывающейся монопольной блокировки, но позволяет им получать перекрывающиеся общие блокировки. Монопольная блокировка предотвращает получение перекрывающейся блокировки любого типа другими программами. После выпуска блокировка не оказывает дальнейшего влияния на блокировки, которые могут быть приобретены другими программами.
Можно ли определить, является ли блокировка монопольной или общей, вызывая его #isShared isShared метод. Некоторые платформы не поддерживают общие блокировки, в этом случае запрос на общую блокировку автоматически преобразуется в запрос на монопольную блокировку.
Блокировки, удерживаемые на определенном файле одной Java виртуальной машины, не перекрываются. Этот #overlaps overlaps метод можно использовать для проверки того, перекрывается ли диапазон блокировки кандидатов существующей блокировкой.
Объект блокировки файлов записывает канал файлов, на котором хранится блокировка, тип и допустимость блокировки, а также положение и размер заблокированного региона. С течением времени может изменяться только допустимость блокировки; все остальные аспекты состояния блокировки неизменяемы.
Блокировки файлов хранятся от имени всей Java виртуальной машины. Они не подходят для управления доступом к файлу несколькими потоками в одной виртуальной машине.
Объекты блокировки файлов безопасны для использования несколькими параллельными потоками.
"pdep"><h2 Platform dependencies >/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.
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".
Конструкторы
| Имя | Описание |
|---|---|
| FileLock(AsynchronousFileChannel, Int64, Int64, Boolean) |
Инициализирует новый экземпляр этого класса. |
| FileLock(FileChannel, Int64, Int64, Boolean) |
Инициализирует новый экземпляр этого класса. |
| FileLock(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
Свойства
| Имя | Описание |
|---|---|
| Class |
Возвращает класс среды выполнения этого |
| Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
| IsShared |
Указывает, предоставлена ли эта блокировка. |
| IsValid |
Указывает, является ли эта блокировка допустимой блокировкой файла. |
| JniIdentityHashCode |
Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия. (Унаследовано от Object) |
| JniManagedPeerState |
Маркер, представляющий блокировку в регионе файла. (Унаследовано от JavaObject) |
| JniPeerMembers |
Маркер, представляющий блокировку в регионе файла. |
| PeerReference |
Возвращает ссылку на объект JNI для этого Java однорангового узла. (Унаследовано от Object) |
| ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
| ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
| Имя | Описание |
|---|---|
| AcquiredBy() |
Возвращает канал, файл которого был получен. |
| Channel() |
Возвращает канал файлов, на который была получена блокировка. |
| Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от Object) |
| Close() |
Этот метод вызывает |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Маркер, представляющий блокировку в регионе файла. (Унаследовано от JavaObject) |
| Dispose() |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| Dispose(Boolean) |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| DisposeUnlessReferenced() |
Маркер, представляющий блокировку в регионе файла. (Унаследовано от JavaObject) |
| Equals(Object) |
Маркер, представляющий блокировку в регионе файла. (Унаследовано от JavaObject) |
| Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
| GetHashCode() |
Возвращает хэш-значение кода для объекта. (Унаследовано от Object) |
| JavaFinalize() |
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
| Notify() |
Просыпается один поток, ожидающий монитора этого объекта. (Унаследовано от Object) |
| NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
| Overlaps(Int64, Int64) |
Указывает, перекрывается ли эта блокировка заданному диапазону блокировки. |
| Position() |
Возвращает позицию в файле первого байта заблокированного региона. |
| Release() |
Освобождает эту блокировку. |
| SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Маркер, представляющий блокировку в регионе файла. (Унаследовано от JavaObject) |
| Size() |
Возвращает размер заблокированного региона в байтах. |
| ToArray<T>() |
Создает управляемый массив из этого Java оболочки массива. (Унаследовано от Object) |
| ToString() |
Возвращает строку, описывающую диапазон, тип и допустимость этой блокировки. |
| UnregisterFromRuntime() |
Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия. (Унаследовано от Object) |
| Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.> (Унаследовано от Object) |
| Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
| Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| IJavaPeerable.Disposed() |
Маркер, представляющий блокировку в регионе файла. (Унаследовано от JavaObject) |
| IJavaPeerable.Finalized() |
Маркер, представляющий блокировку в регионе файла. (Унаследовано от JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Маркер, представляющий блокировку в регионе файла. (Унаследовано от JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Маркер, представляющий блокировку в регионе файла. (Унаследовано от JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Маркер, представляющий блокировку в регионе файла. (Унаследовано от JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Маркер, представляющий блокировку в регионе файла. (Унаследовано от JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
Маркер, представляющий блокировку в регионе файла. |
Методы расширения
| Имя | Описание |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Маркер, представляющий блокировку в регионе файла. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |