FileLock Classe
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.
Um token que representa um bloqueio em uma região de um arquivo.
[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
- Herança
- Atributos
- Implementações
Comentários
Um token que representa um bloqueio em uma região de um arquivo.
Um objeto de bloqueio de arquivo é criado sempre que um bloqueio é adquirido em um arquivo por meio de um dos FileChannel#lock(long,long,boolean) lock métodos ou FileChannel#tryLock(long,long,boolean) tryLock métodos da FileChannel classe ou AsynchronousFileChannel#lock(long,long,boolean,Object,CompletionHandler) lock dos AsynchronousFileChannel#tryLock(long,long,boolean) tryLock métodos da AsynchronousFileChannel classe.
Um objeto de bloqueio de arquivo é inicialmente válido. Ele permanece válido até que o bloqueio seja liberado invocando o #release release método, fechando o canal que foi usado para adquiri-lo ou pelo encerramento da máquina virtual Java, o que ocorrer primeiro. A validade de um bloqueio pode ser testada invocando seu #isValid isValid método.
Um bloqueio de arquivo é exclusivo ou compartilhado. Um bloqueio compartilhado impede que outros programas que executam simultaneamente adquiram um bloqueio exclusivo sobreposto, mas permite que eles adquiram bloqueios compartilhados sobrepostos. Um bloqueio exclusivo impede que outros programas adquiram um bloqueio sobreposto de qualquer tipo. Depois de liberado, um bloqueio não terá mais efeito sobre os bloqueios que podem ser adquiridos por outros programas.
Se um bloqueio é exclusivo ou compartilhado pode ser determinado invocando seu #isShared isShared método. Algumas plataformas 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.
Os bloqueios mantidos em um arquivo específico por um único Java máquina virtual não se sobrepõem. O #overlaps overlaps método pode ser usado para testar se um intervalo de bloqueio candidato se sobrepõe a um bloqueio existente.
Um objeto de bloqueio de arquivo registra o canal de arquivo em cujo arquivo o bloqueio é mantido, o tipo e a validade do bloqueio e a posição e o tamanho da região bloqueada. Somente a validade de um bloqueio está sujeita a alterações ao longo do tempo; todos os outros aspectos do estado de um bloqueio são imutáveis.
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.
Objetos de bloqueio de arquivo são seguros para uso por vários threads simultâneos.
"pdep"><h2> Dependências <da plataforma /h2>
Essa API de bloqueio de arquivos destina-se a mapear diretamente para o recurso de bloqueio nativo do sistema operacional subjacente. Portanto, os bloqueios mantidos em um arquivo devem estar visíveis para todos os programas que têm acesso ao arquivo, independentemente da linguagem em que esses programas são gravados.
Se um bloqueio realmente impede ou não que outro programa acesse o conteúdo da região bloqueada é dependente do sistema e, portanto, não especificado. As instalações nativas de bloqueio de arquivos de alguns sistemas são meramente consultivas, o que significa que os programas devem observar cooperativamente um protocolo de bloqueio conhecido para garantir a integridade dos dados. Em outros sistemas, os bloqueios de arquivos nativos são obrigatórios, o que significa que, se um programa bloquear uma região de um arquivo, outros programas serão realmente impedidos de acessar essa região de uma maneira que violaria o bloqueio. No entanto, em outros sistemas, se os bloqueios de arquivos nativos são consultivos ou obrigatórios são configuráveis por arquivo. Para garantir um comportamento consistente e correto entre plataformas, é altamente recomendável que os bloqueios fornecidos por essa API sejam usados como se fossem bloqueios de consultoria.
Em alguns sistemas, a aquisição de um bloqueio obrigatório em uma região de um arquivo impede que essa região seja java.nio.channels.FileChannel#map <i>mapped into memory</i>e vice-versa. Os programas que combinam bloqueio e mapeamento devem estar preparados para que essa combinação falhe.
Em alguns sistemas, o fechamento de um canal libera todos os bloqueios mantidos pelo Java máquina virtual no arquivo subjacente, independentemente de os bloqueios terem sido adquiridos por meio desse canal ou por meio de outro canal aberto no mesmo arquivo. É altamente recomendável que, dentro de um programa, um canal exclusivo seja usado para adquirir todos os bloqueios em qualquer arquivo determinado.
Alguns sistemas de arquivos de rede permitem que o bloqueio de arquivos seja usado com arquivos mapeados em memória somente quando as regiões bloqueadas estiverem alinhadas à página e um múltiplo inteiro do tamanho da página do hardware subjacente. Alguns sistemas de arquivos de rede não implementam bloqueios de arquivos em regiões que se estendem além de uma determinada posição, geralmente 2<sup>30</sup> ou 2<sup>31</sup>. Em geral, deve-se tomar muito cuidado ao bloquear arquivos que residem em sistemas de arquivos de rede.
Adicionado em 1.4.
Java documentação para java.nio.channels.FileLock.
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.
Construtores
| Nome | Description |
|---|---|
| FileLock(AsynchronousFileChannel, Int64, Int64, Boolean) |
Inicializa uma nova instância dessa classe. |
| FileLock(FileChannel, Int64, Int64, Boolean) |
Inicializa uma nova instância dessa classe. |
| FileLock(IntPtr, JniHandleOwnership) |
Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo runtime. |
Propriedades
| Nome | Description |
|---|---|
| Class |
Retorna a classe de runtime deste |
| Handle |
O identificador para a instância subjacente do Android. (Herdado de Object) |
| IsShared |
Informa se esse bloqueio é compartilhado. |
| IsValid |
Indica se esse bloqueio é um bloqueio de arquivo válido. |
| JniIdentityHashCode |
Obtém o código de hash de identidade atribuído a esse par Java pelo runtime de interoperabilidade. (Herdado de Object) |
| JniManagedPeerState |
Um token que representa um bloqueio em uma região de um arquivo. (Herdado de JavaObject) |
| JniPeerMembers |
Um token que representa um bloqueio em uma região de um arquivo. |
| PeerReference |
Obtém a referência de objeto JNI para este par Java. (Herdado de Object) |
| ThresholdClass |
Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código. |
| ThresholdType |
Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código. |
Métodos
| Nome | Description |
|---|---|
| AcquiredBy() |
Retorna o canal em cujo arquivo esse bloqueio foi adquirido. |
| Channel() |
Retorna o canal de arquivo em cujo arquivo esse bloqueio foi adquirido. |
| Clone() |
Cria e retorna uma cópia desse objeto. (Herdado de Object) |
| Close() |
Esse método invoca o |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Um token que representa um bloqueio em uma região de um arquivo. (Herdado de JavaObject) |
| Dispose() |
Libera os recursos mantidos por esse par Java. (Herdado de Object) |
| Dispose(Boolean) |
Libera os recursos mantidos por esse par Java. (Herdado de Object) |
| DisposeUnlessReferenced() |
Um token que representa um bloqueio em uma região de um arquivo. (Herdado de JavaObject) |
| Equals(Object) |
Um token que representa um bloqueio em uma região de um arquivo. (Herdado de JavaObject) |
| Equals(Object) |
Indica se algum outro objeto é "igual a" este. (Herdado de Object) |
| GetHashCode() |
Retorna um valor de código hash para o objeto. (Herdado de Object) |
| JavaFinalize() |
Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto. (Herdado de Object) |
| Notify() |
Ativa um único thread que está aguardando no monitor deste objeto. (Herdado de Object) |
| NotifyAll() |
Ativa todos os threads que estão aguardando no monitor deste objeto. (Herdado de Object) |
| Overlaps(Int64, Int64) |
Informa se esse bloqueio se sobrepõe ou não ao intervalo de bloqueio fornecido. |
| Position() |
Retorna a posição dentro do arquivo do primeiro byte da região bloqueada. |
| Release() |
Libera esse bloqueio. |
| SetHandle(IntPtr, JniHandleOwnership) |
Define a propriedade Handle (Herdado de Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Um token que representa um bloqueio em uma região de um arquivo. (Herdado de JavaObject) |
| Size() |
Retorna o tamanho da região bloqueada em bytes. |
| ToArray<T>() |
Cria uma matriz gerenciada com base nesse wrapper de matriz Java. (Herdado de Object) |
| ToString() |
Retorna uma cadeia de caracteres que descreve o intervalo, o tipo e a validade desse bloqueio. |
| UnregisterFromRuntime() |
Cancela o registro desse par Java do runtime de interoperabilidade. (Herdado de Object) |
| Wait() |
Faz com que o thread atual aguarde até ser despertado, normalmente por ser <notificado/em> ou <em>interrompido</em>.<> (Herdado de Object) |
| Wait(Int64, Int32) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido. (Herdado de Object) |
| Wait(Int64) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido. (Herdado de Object) |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| IJavaPeerable.Disposed() |
Um token que representa um bloqueio em uma região de um arquivo. (Herdado de JavaObject) |
| IJavaPeerable.Finalized() |
Um token que representa um bloqueio em uma região de um arquivo. (Herdado de JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Um token que representa um bloqueio em uma região de um arquivo. (Herdado de JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Um token que representa um bloqueio em uma região de um arquivo. (Herdado de JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Um token que representa um bloqueio em uma região de um arquivo. (Herdado de JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Um token que representa um bloqueio em uma região de um arquivo. (Herdado de JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
Um token que representa um bloqueio em uma região de um arquivo. |
Métodos de Extensão
| Nome | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtém o nome JNI do tipo da instância |
| JavaAs<TResult>(IJavaPeerable) |
Tente coagir a digitar |
| JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo marcada por runtime do Android. |
| JavaCast<TResult>(IJavaObject) |
Um token que representa um bloqueio em uma região de um arquivo. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |