FileLock Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Token che rappresenta un blocco in un'area di un file.
[Android.Runtime.Register("java/nio/channels/FileLock", DoNotGenerateAcw=true)]
public abstract class FileLock : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, 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
- Ereditarietà
- Attributi
- Implementazioni
Commenti
Token che rappresenta un blocco in un'area di un file.
Ogni volta che un blocco viene acquisito in un file tramite uno dei FileChannel#lock(long,long,boolean) lock metodi o FileChannel#tryLock(long,long,boolean) tryLock della FileChannel classe o , AsynchronousFileChannel#lock(long,long,boolean,Object,CompletionHandler) lockAsynchronousFileChannel#tryLock(long,long,boolean) tryLockAsynchronousFileChannel viene creato un oggetto blocco.
Un oggetto file-lock è inizialmente valido. Rimane valido fino a quando il blocco non viene rilasciato richiamando il #release release metodo, chiudendo il canale usato per acquisirlo o dalla terminazione della macchina virtuale Java, a ogni volta che viene prima. La validità di un blocco può essere testata richiamando il relativo #isValid isValid metodo.
Un blocco di file è esclusivo o condiviso. Un blocco condiviso impedisce ad altri programmi in esecuzione simultanea di acquisire un blocco esclusivo sovrapposto, ma consente loro di acquisire blocchi condivisi sovrapposti. Un blocco esclusivo impedisce ad altri programmi di acquisire un blocco sovrapposto di entrambi i tipi. Una volta rilasciato, un blocco non ha alcun effetto aggiuntivo sui blocchi che possono essere acquisiti da altri programmi.
Se un blocco è esclusivo o condiviso può essere determinato richiamando il relativo #isShared isShared metodo. Alcune piattaforme non supportano blocchi condivisi, nel qual caso una richiesta di un blocco condiviso viene convertita automaticamente in una richiesta di blocco esclusivo.
I blocchi contenuti in un determinato file da una singola macchina virtuale Java non si sovrappongono. Il #overlaps overlaps metodo può essere utilizzato per verificare se un intervallo di blocchi candidati si sovrappone a un blocco esistente.
Un oggetto file-lock registra il canale di file al cui file viene mantenuto il blocco, il tipo e la validità del blocco e la posizione e le dimensioni dell'area bloccata. Solo la validità di un blocco è soggetta a modifiche nel tempo; tutti gli altri aspetti dello stato di un blocco non sono modificabili.
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.
Gli oggetti di blocco file sono sicuri per l'uso da parte di più thread simultanei.
"pdep"><h2> Dipendenze della <piattaforma /h2>
Questa API di blocco file è progettata per eseguire il mapping direttamente alla funzionalità di blocco nativa del sistema operativo sottostante. Pertanto, i blocchi contenuti in un file devono essere visibili a tutti i programmi che hanno accesso al file, indipendentemente dalla lingua in cui vengono scritti tali programmi.
Indipendentemente dal fatto che un blocco impedisca effettivamente a un altro programma di accedere al contenuto dell'area bloccata è dipendente dal sistema e pertanto non specificato. Le strutture native di blocco dei file di alcuni sistemi sono semplicemente consultive, il che significa che i programmi devono osservare in modo cooperativo un protocollo di blocco noto per garantire l'integrità dei dati. In altri sistemi i blocchi di file nativi sono obbligatori, ovvero se un programma blocca un'area di un file, gli altri programmi non possono accedere a tale area in modo da violare il blocco. In altri sistemi, tuttavia, se i blocchi di file nativi sono consultivi o obbligatori è configurabile per ogni file. Per garantire un comportamento coerente e corretto tra le piattaforme, è consigliabile usare i blocchi forniti da questa API come se fossero blocchi consultivi.
In alcuni sistemi, l'acquisizione di un blocco obbligatorio in un'area di un file impedisce che tale area sia java.nio.channels.FileChannel#map <i>mapped into memory</i>e viceversa. I programmi che combinano il blocco e il mapping devono essere preparati per l'esito negativo di questa combinazione.
In alcuni sistemi, la chiusura di un canale rilascia tutti i blocchi mantenuti dalla macchina virtuale Java nel file sottostante, indipendentemente dal fatto che i blocchi siano stati acquisiti tramite tale canale o tramite un altro canale aperto nello stesso file. Si consiglia vivamente che, all'interno di un programma, venga usato un canale univoco per acquisire tutti i blocchi su qualsiasi file specificato.
Alcuni file system di rete consentono l'uso del blocco dei file con file mappati alla memoria solo quando le aree bloccate sono allineate a pagina e un intero multiplo delle dimensioni della pagina dell'hardware sottostante. Alcuni file system di rete non implementano blocchi di file nelle aree che si estendono oltre una determinata posizione, spesso 2<sup>30</sup> o 2<sup>31</sup>. In generale, è consigliabile prestare molta attenzione quando si bloccano i file che risiedono nei file system di rete.
Aggiunta nella versione 1.4.
per java.nio.channels.FileLock.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.
Costruttori
| Nome | Descrizione |
|---|---|
| FileLock(AsynchronousFileChannel, Int64, Int64, Boolean) |
Inizializza una nuova istanza di questa classe. |
| FileLock(FileChannel, Int64, Int64, Boolean) |
Inizializza una nuova istanza di questa classe. |
| FileLock(IntPtr, JniHandleOwnership) |
Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime. |
Proprietà
| Nome | Descrizione |
|---|---|
| Class |
Restituisce la classe di runtime di questo |
| Handle |
Handle per l'istanza di Android sottostante. (Ereditato da Object) |
| IsShared |
Indica se questo blocco è condiviso. |
| IsValid |
Indica se questo blocco è un blocco di file valido. |
| JniIdentityHashCode |
Ottiene il codice hash di identità assegnato a questo Java peer dal runtime di interoperabilità. (Ereditato da Object) |
| JniPeerMembers |
Token che rappresenta un blocco in un'area di un file. |
| PeerReference |
Ottiene il riferimento all'oggetto JNI per questo peer Java. (Ereditato da Object) |
| ThresholdClass |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
| ThresholdType |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
Metodi
| Nome | Descrizione |
|---|---|
| AcquiredBy() |
Restituisce il canale al cui file è stato acquisito questo blocco. |
| Channel() |
Restituisce il canale di file al cui file è stato acquisito questo blocco. |
| Clone() |
Crea e restituisce una copia di questo oggetto. (Ereditato da Object) |
| Close() |
Questo metodo richiama il |
| Dispose() |
Rilascia le risorse contenute in questo peer Java. (Ereditato da Object) |
| Dispose(Boolean) |
Rilascia le risorse contenute in questo peer Java. (Ereditato da Object) |
| Equals(Object) |
Indica se un altro oggetto è "uguale a" questo. (Ereditato da Object) |
| GetHashCode() |
Restituisce un valore di codice hash per l'oggetto . (Ereditato da Object) |
| JavaFinalize() |
Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto . (Ereditato da Object) |
| Notify() |
Riattiva un singolo thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
| NotifyAll() |
Riattiva tutti i thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
| Overlaps(Int64, Int64) |
Indica se questo blocco si sovrappone o meno all'intervallo di blocchi specificato. |
| Position() |
Restituisce la posizione all'interno del file del primo byte dell'area bloccata. |
| Release() |
Rilascia questo blocco. |
| SetHandle(IntPtr, JniHandleOwnership) |
Imposta la proprietà Handle. (Ereditato da Object) |
| Size() |
Restituisce le dimensioni dell'area bloccata in byte. |
| ToArray<T>() |
Crea una matrice gestita da questo wrapper di matrice Java. (Ereditato da Object) |
| ToString() |
Restituisce una stringa che descrive l'intervallo, il tipo e la validità di questo blocco. |
| UnregisterFromRuntime() |
Annulla la registrazione di questo Java peer dal runtime di interoperabilità. (Ereditato da Object) |
| Wait() |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>. (Ereditato da Object) |
| Wait(Int64, Int32) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale. (Ereditato da Object) |
| Wait(Int64) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| IJavaPeerable.Disposed() |
Notifica al runtime di interoperabilità che il peer gestito è stato eliminato. (Ereditato da Object) |
| IJavaPeerable.DisposeUnlessReferenced() |
Rilascia questo Java peer a meno che non venga conservato da un altro riferimento gestito. (Ereditato da Object) |
| IJavaPeerable.Finalized() |
Notifica al runtime di interoperabilità che il peer gestito è stato finalizzato. (Ereditato da Object) |
| IJavaPeerable.JniManagedPeerState |
Ottiene lo stato che descrive la relazione tra questo peer gestito e il relativo riferimento JNI. (Ereditato da Object) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Imposta il codice hash dell'identità di interoperabilità per questo Java peer. (Ereditato da Object) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Imposta lo stato peer gestito e JNI per questo peer Java. (Ereditato da Object) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Imposta il riferimento all'oggetto JNI usato da questo peer gestito. (Ereditato da Object) |
Metodi di estensione
| Nome | Descrizione |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Ottiene il nome JNI del tipo dell'istanza |
| JavaAs<TResult>(IJavaPeerable) |
Provare a digitare |
| JavaCast<TResult>(IJavaObject) |
Esegue una conversione del tipo di tipo controllato dal runtime Android. |
| JavaCast<TResult>(IJavaObject) |
Token che rappresenta un blocco in un'area di un file. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Provare a digitare |