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
| Nome | Description |
|---|---|
| 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 especificada do arquivo deste canal. |
| Lock(Int64, Int64, Boolean, Object, ICompletionHandler) |
Adquire um bloqueio na região especificada 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 deste canal. O método retorna um Future resultado 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 Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
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 especificada do arquivo deste 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 Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Aplica-se a
Lock(Int64, Int64, Boolean)
Adquire um bloqueio na região especificada 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 na qual a região bloqueada deve ser iniciada; deve ser não negativo
- size
- Int64
O tamanho da região bloqueada; deve ser não negativo, e a soma position + size deve ser não negativa
- shared
- Boolean
true para solicitar um bloqueio compartilhado, nesse caso, esse canal deve estar aberto para leitura (e possivelmente gravação); false para solicitar um bloqueio exclusivo, nesse caso, esse canal deve estar aberto para gravação (e possivelmente leitura)
Retornos
um Future objeto que representa o resultado pendente
- Atributos
Comentários
Adquire um bloqueio na região especificada do arquivo deste canal.
Esse método inicia uma operação para adquirir um bloqueio na região especificada do arquivo deste 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 resultado que representa 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 Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Aplica-se a
Lock(Int64, Int64, Boolean, Object, ICompletionHandler)
Adquire um bloqueio na região especificada 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 na qual a região bloqueada deve ser iniciada; deve ser não negativo
- size
- Int64
O tamanho da região bloqueada; deve ser não negativo, e a soma position + size deve ser não negativa
- shared
- Boolean
true para solicitar um bloqueio compartilhado, nesse caso, esse canal deve estar aberto para leitura (e possivelmente gravação); false para solicitar um bloqueio exclusivo, nesse caso, esse canal deve estar aberto para gravação (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 especificada do arquivo deste canal.
Esse método inicia uma operação para adquirir um bloqueio na região especificada do arquivo deste 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 pelo e position os size parâmetros não precisam ser contidos no arquivo subjacente real ou mesmo sobreposto. 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 espera-se que um arquivo aumente de tamanho e um bloqueio em todo o arquivo seja necessário, uma região começando em zero, e não menor 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 sobrepõe a região solicitada já for mantido por esse Java máquina virtual ou esse método tiver sido invocado para bloquear uma região sobreposta e essa operação não tiver sido concluída, esse método será geradoOverlappingFileLockException.
Alguns sistemas operacionais não dão 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, ela poderá consumir threads na máquina virtual Java por períodos indefinidos.
Alguns sistemas operacionais não dão suporte a bloqueios compartilhados, caso em que uma solicitação para um bloqueio compartilhado é convertida automaticamente em uma solicitação para um bloqueio exclusivo. Se o bloqueio recém-adquirido é compartilhado ou exclusivo pode ser testado invocando o método do objeto de FileLock#isShared() isShared bloqueio resultante.
Os bloqueios de arquivo 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 na mesma máquina virtual.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.