AsynchronousFileChannel.Lock Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 Future
mé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)
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 Future
mé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.
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.