Condividi tramite


AsynchronousFileChannel.Lock Metodo

Definizione

Overload

Lock()

Acquisisce un blocco esclusivo sul file del canale.

Lock(Object, ICompletionHandler)

Acquisisce un blocco esclusivo sul file del canale.

Lock(Int64, Int64, Boolean)

Acquisisce un blocco sull'area specificata del file del canale.

Lock(Int64, Int64, Boolean, Object, ICompletionHandler)

Acquisisce un blocco sull'area specificata del file del canale.

Lock()

Acquisisce un blocco esclusivo sul file del canale.

[Android.Runtime.Register("lock", "()Ljava/util/concurrent/Future;", "", ApiSince=26)]
public Java.Util.Concurrent.IFuture? Lock ();
[<Android.Runtime.Register("lock", "()Ljava/util/concurrent/Future;", "", ApiSince=26)>]
member this.Lock : unit -> Java.Util.Concurrent.IFuture

Restituisce

oggetto Future che rappresenta il risultato in sospeso

Attributi

Commenti

Acquisisce un blocco esclusivo sul file del canale.

Questo metodo avvia un'operazione per acquisire un blocco esclusivo sul file del canale. Il metodo restituisce un oggetto Future che rappresenta il risultato in sospeso dell'operazione. Il Futuremetodo del Future#get() get metodo restituisce l'oggetto FileLock al completamento riuscito.

Una chiamata di questo metodo si comporta esattamente come la chiamata

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

Documentazione java per java.nio.channels.AsynchronousFileChannel.lock().

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a

Lock(Object, ICompletionHandler)

Acquisisce un blocco esclusivo sul file del canale.

[Android.Runtime.Register("lock", "(Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public void Lock (Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("lock", "(Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
member this.Lock : Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit

Parametri

attachment
Object

Oggetto da associare all'operazione di I/O; può essere null

handler
ICompletionHandler

Gestore per l'utilizzo del risultato

Attributi

Commenti

Acquisisce un blocco esclusivo sul file del canale.

Questo metodo avvia un'operazione per acquisire un blocco nell'area specificata del file del canale. Il handler parametro è un gestore di completamento che viene richiamato quando il blocco viene acquisito (o l'operazione ha esito negativo). Il risultato passato al gestore di completamento è l'oggetto risultante FileLock.

Una chiamata di questo metodo del form ch.lock(att,handler) si comporta esattamente come la chiamata

ch.{@link #lock(long,long,boolean,Object,CompletionHandler) lock}(0L, Long.MAX_VALUE, false, att, handler)

Documentazione java per java.nio.channels.AsynchronousFileChannel.lock(A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a

Lock(Int64, Int64, Boolean)

Acquisisce un blocco sull'area specificata del file del canale.

[Android.Runtime.Register("lock", "(JJZ)Ljava/util/concurrent/Future;", "GetLock_JJZHandler", ApiSince=26)]
public abstract Java.Util.Concurrent.IFuture? Lock (long position, long size, bool shared);
[<Android.Runtime.Register("lock", "(JJZ)Ljava/util/concurrent/Future;", "GetLock_JJZHandler", ApiSince=26)>]
abstract member Lock : int64 * int64 * bool -> Java.Util.Concurrent.IFuture

Parametri

position
Int64

Posizione in cui deve iniziare l'area bloccata; deve essere non negativo

size
Int64

Dimensioni dell'area bloccata; deve essere non negativo e la somma position + size deve essere non negativa

shared
Boolean

true per richiedere un blocco condiviso, nel qual caso questo canale deve essere aperto per la lettura (ed eventualmente la scrittura); false per richiedere un blocco esclusivo, nel qual caso questo canale deve essere aperto per la scrittura (ed eventualmente la lettura)

Restituisce

oggetto Future che rappresenta il risultato in sospeso

Attributi

Commenti

Acquisisce un blocco sull'area specificata del file del canale.

Questo metodo avvia un'operazione per acquisire un blocco nell'area specificata del file del canale. Il metodo si comporta esattamente allo stesso modo del metodo, ad eccezione del #lock(long, long, boolean, Object, CompletionHandler) fatto che invece di specificare un gestore di completamento, questo metodo restituisce un Future oggetto che rappresenta il risultato in sospeso. Il Futuremetodo del Future#get() get metodo restituisce l'oggetto FileLock al completamento riuscito.

Documentazione java per java.nio.channels.AsynchronousFileChannel.lock(long, long, boolean).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a

Lock(Int64, Int64, Boolean, Object, ICompletionHandler)

Acquisisce un blocco sull'area specificata del file del canale.

[Android.Runtime.Register("lock", "(JJZLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetLock_JJZLjava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public abstract void Lock (long position, long size, bool shared, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("lock", "(JJZLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetLock_JJZLjava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
abstract member Lock : int64 * int64 * bool * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit

Parametri

position
Int64

Posizione in cui deve iniziare l'area bloccata; deve essere non negativo

size
Int64

Dimensioni dell'area bloccata; deve essere non negativo e la somma position + size deve essere non negativa

shared
Boolean

true per richiedere un blocco condiviso, nel qual caso questo canale deve essere aperto per la lettura (ed eventualmente la scrittura); false per richiedere un blocco esclusivo, nel qual caso questo canale deve essere aperto per la scrittura (ed eventualmente la lettura)

attachment
Object

Oggetto da associare all'operazione di I/O; può essere null

handler
ICompletionHandler

Gestore per l'utilizzo del risultato

Attributi

Commenti

Acquisisce un blocco sull'area specificata del file del canale.

Questo metodo avvia un'operazione per acquisire un blocco nell'area specificata del file del canale. Il handler parametro è un gestore di completamento che viene richiamato quando il blocco viene acquisito (o l'operazione ha esito negativo). Il risultato passato al gestore di completamento è l'oggetto risultante FileLock.

L'area specificata dai position parametri e size non deve essere contenuta all'interno o addirittura sovrapporsi al file sottostante effettivo. Le aree di blocco sono fisse; se inizialmente un'area bloccata contiene la fine del file e il file aumenta oltre l'area, la nuova parte del file non verrà coperta dal blocco. Se è previsto un aumento delle dimensioni di un file e è necessario un blocco per l'intero file, è necessario che un'area a partire da zero e non sia inferiore alla dimensione massima prevista del file, deve essere bloccata. Il metodo a due argomenti #lock(Object,CompletionHandler) blocca semplicemente un'area di dimensioni Long#MAX_VALUE. Se un blocco che si sovrappone all'area richiesta è già contenuto in questa macchina virtuale Java o questo metodo è stato richiamato per bloccare un'area sovrapposta e tale operazione non è stata completata, questo metodo genera OverlappingFileLockException.

Alcuni sistemi operativi non supportano un meccanismo per acquisire un blocco di file in modo asincrono. Di conseguenza, un'implementazione può acquisire il blocco di file in un thread in background o da un'attività eseguita da un thread nel pool di thread associato. Se sono presenti molte operazioni di blocco in sospeso, potrebbe utilizzare thread nella macchina virtuale Java per periodi indefiniti.

Alcuni sistemi operativi non supportano blocchi condivisi, nel qual caso una richiesta di blocco condiviso viene convertita automaticamente in una richiesta di blocco esclusivo. Se il blocco appena acquisito è condiviso o esclusivo può essere testato richiamando il metodo dell'oggetto FileLock#isShared() isShared di blocco risultante.

I blocchi di file vengono mantenuti per conto dell'intera macchina virtuale Java. Non sono adatti per controllare l'accesso a un file da più thread all'interno della stessa macchina virtuale.

Documentazione java per java.nio.channels.AsynchronousFileChannel.lock(long, long, boolean, A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a