Sprache

FileChannel.TryLock Methode

Definition

Überlädt

Name Beschreibung
TryLock()

Versucht, eine exklusive Sperre für die Datei dieses Kanals zu erwerben.

TryLock(Int64, Int64, Boolean)

Versucht, eine Sperre für die angegebene Region der Datei dieses Kanals abzurufen.

TryLock()

Versucht, eine exklusive Sperre für die Datei dieses Kanals zu erwerben.

[Android.Runtime.Register("tryLock", "()Ljava/nio/channels/FileLock;", "")]
public Java.Nio.Channels.FileLock? TryLock();
[<Android.Runtime.Register("tryLock", "()Ljava/nio/channels/FileLock;", "")>]
member this.TryLock : unit -> Java.Nio.Channels.FileLock

Gibt zurück

Ein Sperrobjekt, das die neu erworbene Sperre darstellt, oder null wenn die Sperre nicht abgerufen werden konnte, da ein anderes Programm eine überlappende Sperre enthält

Attribute

Ausnahmen

wenn der Dateikanal geschlossen ist.

wenn bereits eine Sperre vorhanden ist, die diese Sperranforderung überlappt oder ein anderer Thread wartet, um eine Sperre zu erhalten, die sich mit dieser Anforderung überlappt.

wenn ein E/A-Fehler auftritt.

Hinweise

Versucht, eine exklusive Sperre für die Datei dieses Kanals zu erwerben.

Ein Aufruf dieser Methode des Formulars fc.tryLock() verhält sich genauso wie der Aufruf

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

Java Dokumentation für java.nio.channels.FileChannel.tryLock().

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

TryLock(Int64, Int64, Boolean)

Versucht, eine Sperre für die angegebene Region der Datei dieses Kanals abzurufen.

[Android.Runtime.Register("tryLock", "(JJZ)Ljava/nio/channels/FileLock;", "GetTryLock_JJZHandler")]
public abstract Java.Nio.Channels.FileLock? TryLock(long position, long size, bool shared);
[<Android.Runtime.Register("tryLock", "(JJZ)Ljava/nio/channels/FileLock;", "GetTryLock_JJZHandler")>]
abstract member TryLock : int64 * int64 * bool -> Java.Nio.Channels.FileLock

Parameter

position
Int64

Die Position, an der der gesperrte Bereich gestartet werden soll; muss nicht negativ sein

size
Int64

Die Größe des gesperrten Bereichs; muss nicht negativ sein, und die Summe position + size muss nicht negativ sein.

shared
Boolean

true um eine freigegebene Sperre anzufordern, false um eine exklusive Sperre anzufordern

Gibt zurück

Ein Sperrobjekt, das die neu erworbene Sperre darstellt, oder null wenn die Sperre nicht abgerufen werden konnte, da ein anderes Programm eine überlappende Sperre enthält

Attribute

Ausnahmen

wenn Parameter ungültig sind.

wenn der Dateikanal geschlossen ist.

wenn bereits eine Sperre vorhanden ist, die diese Sperranforderung überlappt oder ein anderer Thread wartet, um eine Sperre zu erhalten, die sich mit dieser Anforderung überlappt.

wenn ein E/A-Fehler auftritt.

Hinweise

Versucht, eine Sperre für die angegebene Region der Datei dieses Kanals abzurufen.

Diese Methode blockiert nicht. Ein Aufruf wird immer sofort zurückgegeben, entweder nachdem eine Sperre für die angeforderte Region erworben wurde oder dies nicht möglich war. Wenn sie eine Sperre nicht abrufen kann, weil eine überlappende Sperre von einem anderen Programm gehalten wird, wird sie zurückgegeben null. Wenn eine Sperre aus irgendeinem anderen Grund nicht erworben werden kann, wird eine entsprechende Ausnahme ausgelöst.

Der durch die position Parameter size angegebene Bereich muss nicht in der tatsächlich zugrunde liegenden Datei enthalten sein oder sogar überlappen. Sperrbereiche sind in der Größe festgelegt; wenn ein gesperrter Bereich anfangs das Ende der Datei enthält und die Datei über den Bereich hinaus wächst, wird der neue Teil der Datei nicht von der Sperre abgedeckt. Wenn erwartet wird, dass eine Datei größer wird und eine Sperre für die gesamte Datei erforderlich ist, sollte ein Bereich mit Null und nicht kleiner als die erwartete maximale Größe der Datei gesperrt werden. Die Null-Argument-Methode #tryLock() sperrt einfach einen Bereich der Größe Long#MAX_VALUE.

Einige Betriebssysteme unterstützen keine freigegebenen Sperren. In diesem Fall wird eine Anforderung für eine freigegebene Sperre automatisch in eine Anforderung für eine exklusive Sperre konvertiert. Ob die neu erworbene Sperre freigegeben oder exklusiv ist, kann durch Aufrufen der Methode des resultierenden Sperrobjekts FileLock#isShared() isShared getestet werden.

Dateisperren werden im Namen des gesamten Java virtuellen Computers gespeichert. Sie eignen sich nicht für die Steuerung des Zugriffs auf eine Datei durch mehrere Threads innerhalb desselben virtuellen Computers.

Java Dokumentation für java.nio.channels.FileChannel.tryLock(long, long, boolean).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: