Compartilhar via


AsynchronousFileChannel.Lock Método

Definição

Sobrecargas

Lock()

Adquire um bloqueio exclusivo no arquivo deste canal.

Lock(Object, ICompletionHandler)

Adquire um bloqueio exclusivo no arquivo deste canal.

Lock(Int64, Int64, Boolean)

Adquire um bloqueio na região determinada do arquivo deste canal.

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

Adquire um bloqueio na região determinada do arquivo deste canal.

Lock()

Adquire um bloqueio exclusivo no arquivo deste canal.

[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

Retornos

um Future objeto que representa o resultado pendente

Atributos

Comentários

Adquire um bloqueio exclusivo no arquivo deste canal.

Esse método inicia uma operação para adquirir um bloqueio exclusivo no arquivo desse canal. O método retorna um Future que representa o resultado pendente da operação. O Futuremétodo 's Future#get() get retorna a FileLock conclusão bem-sucedida.

Uma invocação desse método se comporta exatamente da mesma maneira que a invocação

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

Documentação Java para java.nio.channels.AsynchronousFileChannel.lock().

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.

Aplica-se a

Lock(Object, ICompletionHandler)

Adquire um bloqueio exclusivo no arquivo deste canal.

[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

Parâmetros

attachment
Object

O objeto a ser anexado à operação de E/S; pode ser null

handler
ICompletionHandler

O manipulador para consumir o resultado

Atributos

Comentários

Adquire um bloqueio exclusivo no arquivo deste canal.

Esse método inicia uma operação para adquirir um bloqueio na região determinada do arquivo desse canal. O handler parâmetro é um manipulador de conclusão que é invocado quando o bloqueio é adquirido (ou a operação falha). O resultado passado para o manipulador de conclusão é o resultado FileLock.

Uma invocação desse método do formulário ch.lock(att,handler) se comporta exatamente da mesma maneira que a invocação

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

Documentação Java para java.nio.channels.AsynchronousFileChannel.lock(A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.

Aplica-se a

Lock(Int64, Int64, Boolean)

Adquire um bloqueio na região determinada do arquivo deste canal.

[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

Parâmetros

position
Int64

A posição em que a região bloqueada deve começar; deve ser não-negativo

size
Int64

O tamanho da região trancada; deve ser não-negativa, e a soma position + size deve ser não-negativa

shared
Boolean

true solicitar um bloqueio compartilhado, caso em que esse canal deve estar aberto para leitura (e possivelmente escrita); false para solicitar um bloqueio exclusivo, caso em que este canal deve estar aberto para escrita (e possivelmente leitura)

Retornos

um Future objeto que representa o resultado pendente

Atributos

Comentários

Adquire um bloqueio na região determinada do arquivo deste canal.

Esse método inicia uma operação para adquirir um bloqueio na região determinada do arquivo desse canal. O método se comporta exatamente da mesma maneira que o #lock(long, long, boolean, Object, CompletionHandler) método, exceto que, em vez de especificar um manipulador de conclusão, esse método retorna um Future representando o resultado pendente. O Futuremétodo 's Future#get() get retorna a FileLock conclusão bem-sucedida.

Documentação Java para java.nio.channels.AsynchronousFileChannel.lock(long, long, boolean).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.

Aplica-se a

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

Adquire um bloqueio na região determinada do arquivo deste canal.

[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

Parâmetros

position
Int64

A posição em que a região bloqueada deve começar; deve ser não-negativo

size
Int64

O tamanho da região trancada; deve ser não-negativa, e a soma position + size deve ser não-negativa

shared
Boolean

true solicitar um bloqueio compartilhado, caso em que esse canal deve estar aberto para leitura (e possivelmente escrita); false para solicitar um bloqueio exclusivo, caso em que este canal deve estar aberto para escrita (e possivelmente leitura)

attachment
Object

O objeto a ser anexado à operação de E/S; pode ser null

handler
ICompletionHandler

O manipulador para consumir o resultado

Atributos

Comentários

Adquire um bloqueio na região determinada do arquivo deste canal.

Esse método inicia uma operação para adquirir um bloqueio na região determinada do arquivo desse canal. O handler parâmetro é um manipulador de conclusão que é invocado quando o bloqueio é adquirido (ou a operação falha). O resultado passado para o manipulador de conclusão é o resultado FileLock.

A região especificada pelos position parâmetros e size não precisa estar contida no arquivo subjacente real ou mesmo se sobrepor. As regiões de bloqueio são fixas em tamanho; Se uma região bloqueada inicialmente contiver o final do arquivo e o arquivo crescer além da região, a nova parte do arquivo não será coberta pelo bloqueio. Se for esperado que um arquivo aumente de tamanho e um bloqueio no arquivo inteiro for necessário, uma região começando em zero, e não menor do que o tamanho máximo esperado do arquivo, deverá ser bloqueada. O método de dois argumentos #lock(Object,CompletionHandler) simplesmente bloqueia uma região de tamanho Long#MAX_VALUE. Se um bloqueio que se sobrepõe à região solicitada já estiver mantido por essa máquina virtual Java ou se esse método tiver sido chamado para bloquear uma região sobreposta e essa operação não tiver sido concluída, esse método lançará OverlappingFileLockException.

Alguns sistemas operacionais não oferecem suporte a um mecanismo para adquirir um bloqueio de arquivo de maneira assíncrona. Consequentemente, uma implementação pode adquirir o bloqueio de arquivo em um thread em segundo plano ou de uma tarefa executada por um thread no pool de threads associado. Se houver muitas operações de bloqueio pendentes, ele poderá consumir threads na máquina virtual Java por períodos indefinidos.

Alguns sistemas operacionais não oferecem suporte a bloqueios compartilhados, caso em que uma solicitação de bloqueio compartilhado é automaticamente convertida em uma solicitação de bloqueio exclusivo. Se o bloqueio recém-adquirido é compartilhado ou exclusivo pode ser testado invocando o método do FileLock#isShared() isShared objeto de bloqueio resultante.

Os bloqueios de arquivos são mantidos em nome de toda a máquina virtual Java. Eles não são adequados para controlar o acesso a um arquivo por vários threads dentro da mesma máquina virtual.

Documentação Java para java.nio.channels.AsynchronousFileChannel.lock(long, long, boolean, A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.

Aplica-se a