Bagikan melalui


FileChannel.Lock Metode

Definisi

Overload

Lock()

Memperoleh kunci eksklusif pada file saluran ini.

Lock(Int64, Int64, Boolean)

Memperoleh kunci pada wilayah tertentu dari file saluran ini.

Lock()

Memperoleh kunci eksklusif pada file saluran ini.

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

Mengembalikan

Objek kunci yang mewakili kunci yang baru diperoleh

Atribut

Pengecualian

saluran file ditutup.

saluran ini tidak dibuka untuk menulis.

kunci sudah ditahan yang tumpang tindih dengan permintaan kunci ini, atau utas lain sedang menunggu untuk memperoleh kunci yang akan tumpang tindih dengan permintaan ini.

utas panggilan terganggu saat menunggu untuk memperoleh kunci.

saluran ditutup saat utas panggilan sedang menunggu untuk memperoleh kunci.

jika terjadi kesalahan I/O lain saat mendapatkan kunci yang diminta.

Keterangan

Memperoleh kunci eksklusif pada file saluran ini.

Pemanggilan metode bentuk fc.lock() ini berulah dengan cara yang sama persis dengan pemanggilan

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

Dokumentasi Java untuk java.nio.channels.FileChannel.lock().

Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.

Berlaku untuk

Lock(Int64, Int64, Boolean)

Memperoleh kunci pada wilayah tertentu dari file saluran ini.

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

Parameter

position
Int64

Posisi di mana wilayah terkunci akan dimulai; harus non-negatif

size
Int64

Ukuran wilayah terkunci; harus non-negatif, dan jumlah position + size harus non-negatif

shared
Boolean

true untuk meminta kunci bersama, dalam hal ini saluran ini harus terbuka untuk membaca (dan mungkin menulis); false untuk meminta kunci eksklusif, dalam hal ini saluran ini harus terbuka untuk menulis (dan mungkin membaca)

Mengembalikan

Objek kunci yang mewakili kunci yang baru diperoleh

Atribut

Pengecualian

jika position atau size negatif.

jika saluran ini ditutup.

jika wilayah yang diminta tumpang tindih dengan kunci yang ada atau permintaan kunci tertunda.

jika saluran tidak dibuka dalam mode baca tetapi dibagikan adalah benar.

jika saluran tidak dibuka dalam mode tulis tetapi bersama adalah false.

jika saluran ini ditutup oleh utas lain saat metode ini sedang dijalankan.

jika utas terganggu saat dalam status menunggu pada kunci file yang diinginkan.

jika terjadi kesalahan I/O lain.

Keterangan

Memperoleh kunci pada wilayah tertentu dari file saluran ini.

Pemanggilan metode ini akan memblokir sampai wilayah dapat dikunci, saluran ini ditutup, atau utas pemanggilan terganggu, mana yang lebih dulu.

Jika saluran ini ditutup oleh utas lain selama pemanggilan metode ini maka AsynchronousCloseException akan dilemparkan.

Jika utas pemanggilan terganggu saat menunggu untuk memperoleh kunci, maka status interupsinya akan diatur dan FileLockInterruptionException akan dilemparkan. Jika status interupsi pemanggil diatur ketika metode ini dipanggil maka pengecualian tersebut akan segera dilemparkan; status gangguan utas tidak akan diubah.

Wilayah yang ditentukan oleh position parameter dan size tidak perlu dimuat dalam, atau bahkan tumpang tindih, file dasar yang sebenarnya. Wilayah kunci berukuran tetap; jika wilayah terkunci awalnya berisi akhir file dan file tumbuh di luar wilayah, bagian baru file tidak akan dicakup oleh kunci. Jika file diharapkan tumbuh dalam ukuran dan kunci pada seluruh file diperlukan maka wilayah mulai dari nol, dan tidak lebih kecil dari ukuran maksimum file yang diharapkan, harus dikunci. Metode nol argumen #lock() hanya mengunci wilayah ukuran Long#MAX_VALUE.

Beberapa sistem operasi tidak mendukung kunci bersama, dalam hal ini permintaan untuk kunci bersama secara otomatis dikonversi menjadi permintaan untuk kunci eksklusif. Apakah kunci yang baru diperoleh dibagikan atau eksklusif dapat diuji dengan memanggil metode objek FileLock#isShared() isShared kunci yang dihasilkan.

Kunci file ditahan atas nama seluruh komputer virtual Java. Mereka tidak cocok untuk mengontrol akses ke file dengan beberapa utas dalam komputer virtual yang sama.

Dokumentasi Java untuk java.nio.channels.FileChannel.lock(long, long, boolean).

Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.

Berlaku untuk