FileLock Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Token que representa un bloqueo en una región de un archivo.
[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
- Herencia
- Atributos
- Implementaciones
Comentarios
Token que representa un bloqueo en una región de un archivo.
Se crea un objeto de bloqueo de archivo cada vez que se adquiere un bloqueo en un archivo a través de uno de los FileChannel#lock(long,long,boolean) lock métodos o FileChannel#tryLock(long,long,boolean) tryLock de la FileChannel clase , o los AsynchronousFileChannel#lock(long,long,boolean,Object,CompletionHandler) lock métodos o AsynchronousFileChannel#tryLock(long,long,boolean) tryLock de la AsynchronousFileChannel clase .
Inicialmente, un objeto de bloqueo de archivos es válido. Sigue siendo válido hasta que se libera el bloqueo invocando el #release release método , cerrando el canal que se usó para adquirirlo o por la terminación de la máquina virtual de Java, lo que ocurra primero. La validez de un bloqueo se puede probar invocando su #isValid isValid método.
Un bloqueo de archivo es exclusivo o compartido. Un bloqueo compartido impide que otros programas que se ejecuten simultáneamente adquieran un bloqueo exclusivo superpuesto, pero les permite adquirir bloqueos compartidos superpuestos. Un bloqueo exclusivo impide que otros programas adquieran un bloqueo superpuesto de cualquier tipo. Una vez liberado, un bloqueo no tiene ningún efecto adicional en los bloqueos que otros programas pueden adquirir.
Si un bloqueo es exclusivo o compartido puede determinarse invocando su #isShared isShared método. Algunas plataformas no admiten bloqueos compartidos, en cuyo caso una solicitud de bloqueo compartido se convierte automáticamente en una solicitud de bloqueo exclusivo.
Los bloqueos mantenidos en un archivo determinado por una sola máquina virtual Java no se superponen. El #overlaps overlaps método se puede usar para probar si un intervalo de bloqueo candidato se superpone a un bloqueo existente.
Un objeto de bloqueo de archivo registra el canal de archivo en cuyo archivo se mantiene el bloqueo, el tipo y la validez del bloqueo, y la posición y el tamaño de la región bloqueada. Solo la validez de un bloqueo está sujeta a cambios a lo largo del tiempo; todos los demás aspectos del estado de un bloqueo son inmutables.
Los bloqueos de archivo se mantienen en nombre de toda la máquina virtual Java. No son adecuados para controlar el acceso a un archivo mediante varios subprocesos dentro de la misma máquina virtual.
Los objetos de bloqueo de archivos son seguros para su uso por varios subprocesos simultáneos.
"pdep"><h2> Dependencias de <la plataforma /h2>
Esta API de bloqueo de archivos está pensada para asignarse directamente a la instalación de bloqueo nativa del sistema operativo subyacente. Por lo tanto, los bloqueos contenidos en un archivo deben ser visibles para todos los programas que tienen acceso al archivo, independientemente del idioma en el que se escriban esos programas.
Si un bloqueo impide o no que otro programa acceda al contenido de la región bloqueada depende del sistema y, por tanto, no se especifica. Las instalaciones nativas de bloqueo de archivos de algunos sistemas son simplemente avisos, lo que significa que los programas deben observar de forma cooperativa un protocolo de bloqueo conocido para garantizar la integridad de los datos. En otros sistemas, los bloqueos de archivos nativos son obligatorios, lo que significa que si un programa bloquea una región de un archivo, se impide que otros programas accedan realmente a esa región de una manera que infringiría el bloqueo. Sin embargo, en otros sistemas, si los bloqueos de archivos nativos son avisos o obligatorios, se pueden configurar por archivo. Para garantizar un comportamiento coherente y correcto en todas las plataformas, se recomienda encarecidamente que los bloqueos proporcionados por esta API se usen como si fueran bloqueos de asesoramiento.
En algunos sistemas, adquirir un bloqueo obligatorio en una región de un archivo impide que esa región sea java.nio.channels.FileChannel#map <i>mapped into memory</i>y viceversa. Los programas que combinan bloqueos y asignaciones deben estar preparados para que esta combinación produzca un error.
En algunos sistemas, al cerrar un canal se liberan todos los bloqueos mantenidos por la máquina virtual Java en el archivo subyacente, independientemente de si los bloqueos se adquirieron a través de ese canal o a través de otro canal abierto en el mismo archivo. Se recomienda encarecidamente que, dentro de un programa, se use un canal único para adquirir todos los bloqueos en cualquier archivo determinado.
Algunos sistemas de archivos de red permiten usar el bloqueo de archivos con archivos asignados a memoria solo cuando las regiones bloqueadas están alineadas con páginas y varios de los tamaños de página del hardware subyacente. Algunos sistemas de archivos de red no implementan bloqueos de archivos en regiones que se extienden más allá de una determinada posición, a menudo 2<sup>30</sup> o 2<sup>31</sup>. En general, se debe tener gran cuidado al bloquear archivos que residen en sistemas de archivos de red.
Agregado en la versión 1.4.
Java documentación para java.nio.channels.FileLock.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.
Constructores
| Nombre | Description |
|---|---|
| FileLock(AsynchronousFileChannel, Int64, Int64, Boolean) |
Inicializa una nueva instancia de esta clase. |
| FileLock(FileChannel, Int64, Int64, Boolean) |
Inicializa una nueva instancia de esta clase. |
| FileLock(IntPtr, JniHandleOwnership) |
Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución. |
Propiedades
| Nombre | Description |
|---|---|
| Class |
Devuelve la clase en tiempo de ejecución de este |
| Handle |
Identificador de la instancia de Android subyacente. (Heredado de Object) |
| IsShared |
Indica si se comparte este bloqueo. |
| IsValid |
Indica si este bloqueo es un bloqueo de archivo válido. |
| JniIdentityHashCode |
Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| JniManagedPeerState |
Token que representa un bloqueo en una región de un archivo. (Heredado de JavaObject) |
| JniPeerMembers |
Token que representa un bloqueo en una región de un archivo. |
| PeerReference |
Obtiene la referencia de objeto JNI para este Java del mismo nivel. (Heredado de Object) |
| ThresholdClass |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
| ThresholdType |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
Métodos
| Nombre | Description |
|---|---|
| AcquiredBy() |
Devuelve el canal en cuyo archivo se adquirió este bloqueo. |
| Channel() |
Devuelve el canal de archivo en cuyo archivo se adquirió este bloqueo. |
| Clone() |
Crea y devuelve una copia de este objeto. (Heredado de Object) |
| Close() |
Este método invoca el |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Token que representa un bloqueo en una región de un archivo. (Heredado de JavaObject) |
| Dispose() |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| Dispose(Boolean) |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| DisposeUnlessReferenced() |
Token que representa un bloqueo en una región de un archivo. (Heredado de JavaObject) |
| Equals(Object) |
Token que representa un bloqueo en una región de un archivo. (Heredado de JavaObject) |
| Equals(Object) |
Indica si algún otro objeto es "igual a" este. (Heredado de Object) |
| GetHashCode() |
Devuelve un valor de código hash para el objeto . (Heredado de Object) |
| JavaFinalize() |
Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto . (Heredado de Object) |
| Notify() |
Activa un único subproceso que está esperando en el monitor de este objeto. (Heredado de Object) |
| NotifyAll() |
Activa todos los subprocesos que están esperando en el monitor de este objeto. (Heredado de Object) |
| Overlaps(Int64, Int64) |
Indica si este bloqueo se superpone o no al intervalo de bloqueo especificado. |
| Position() |
Devuelve la posición dentro del archivo del primer byte de la región bloqueada. |
| Release() |
Libera este bloqueo. |
| SetHandle(IntPtr, JniHandleOwnership) |
Establece la propiedad Handle. (Heredado de Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Token que representa un bloqueo en una región de un archivo. (Heredado de JavaObject) |
| Size() |
Devuelve el tamaño de la región bloqueada en bytes. |
| ToArray<T>() |
Crea una matriz administrada a partir de este contenedor de matriz Java. (Heredado de Object) |
| ToString() |
Devuelve una cadena que describe el intervalo, el tipo y la validez de este bloqueo. |
| UnregisterFromRuntime() |
Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| Wait() |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><> (Heredado de Object) |
| Wait(Int64, Int32) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
| Wait(Int64) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IJavaPeerable.Disposed() |
Token que representa un bloqueo en una región de un archivo. (Heredado de JavaObject) |
| IJavaPeerable.Finalized() |
Token que representa un bloqueo en una región de un archivo. (Heredado de JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Token que representa un bloqueo en una región de un archivo. (Heredado de JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Token que representa un bloqueo en una región de un archivo. (Heredado de JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Token que representa un bloqueo en una región de un archivo. (Heredado de JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Token que representa un bloqueo en una región de un archivo. (Heredado de JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
Token que representa un bloqueo en una región de un archivo. |
Métodos de extensión
| Nombre | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtiene el nombre JNI del tipo de la instancia |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
| JavaCast<TResult>(IJavaObject) |
Token que representa un bloqueo en una región de un archivo. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Intente coerción |