FileChannel.Lock Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.