ILock.TryLock 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
| Nama | Deskripsi |
|---|---|
| TryLock() |
Memperoleh kunci hanya jika gratis pada saat pemanggilan. |
| TryLock(Int64, TimeUnit) |
Memperoleh kunci jika gratis dalam waktu tunggu yang diberikan dan utas saat ini belum Utas#interupsi terganggu. |
TryLock()
Memperoleh kunci hanya jika gratis pada saat pemanggilan.
[Android.Runtime.Register("tryLock", "()Z", "GetTryLockHandler:Java.Util.Concurrent.Locks.ILockInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public bool TryLock();
[<Android.Runtime.Register("tryLock", "()Z", "GetTryLockHandler:Java.Util.Concurrent.Locks.ILockInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member TryLock : unit -> bool
Mengembalikan
true jika kunci diperoleh dan false sebaliknya
- Atribut
Keterangan
Memperoleh kunci hanya jika gratis pada saat pemanggilan.
Memperoleh kunci jika tersedia dan segera kembali dengan nilai true. Jika kunci tidak tersedia, metode ini akan segera kembali dengan nilai false.
Idiom penggunaan umum untuk metode ini adalah:
{@code
Lock lock = ...;
if (lock.tryLock()) {
try {
// manipulate protected state
} finally {
lock.unlock();
}
} else {
// perform alternative actions
}}
Penggunaan ini memastikan bahwa kunci tidak terkunci jika diperoleh, dan tidak mencoba membuka kunci jika kunci tidak diperoleh.
Java dokumentasi untuk java.util.concurrent.locks.Lock.tryLock().
Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.
Berlaku untuk
TryLock(Int64, TimeUnit)
Memperoleh kunci jika gratis dalam waktu tunggu yang diberikan dan utas saat ini belum Utas#interupsi terganggu.
[Android.Runtime.Register("tryLock", "(JLjava/util/concurrent/TimeUnit;)Z", "GetTryLock_JLjava_util_concurrent_TimeUnit_Handler:Java.Util.Concurrent.Locks.ILockInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public bool TryLock(long time, Java.Util.Concurrent.TimeUnit? unit);
[<Android.Runtime.Register("tryLock", "(JLjava/util/concurrent/TimeUnit;)Z", "GetTryLock_JLjava_util_concurrent_TimeUnit_Handler:Java.Util.Concurrent.Locks.ILockInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member TryLock : int64 * Java.Util.Concurrent.TimeUnit -> bool
Parameter
- time
- Int64
waktu maksimum untuk menunggu kunci
- unit
- TimeUnit
unit time waktu argumen
Mengembalikan
true jika kunci diperoleh dan false jika waktu tunggu berlalu sebelum kunci diperoleh
- Atribut
Pengecualian
jika utas saat ini terganggu saat memperoleh kunci (dan gangguan akuisisi kunci didukung)
Keterangan
Memperoleh kunci jika gratis dalam waktu tunggu yang diberikan dan utas saat ini belum Utas#interupsi terganggu.
Jika kunci tersedia, metode ini segera kembali dengan nilai true. Jika kunci tidak tersedia maka utas saat ini menjadi dinonaktifkan untuk tujuan penjadwalan utas dan terletak tidak aktif sampai salah satu dari tiga hal terjadi: ul<li Kunci diperoleh oleh utas saat ini; atau >li<Beberapa Utas >lain#mengganggu utas saat ini, dan gangguan akuisisi kunci didukung; atau <li>Waktu tunggu yang ditentukan berlalu /ul<><>
Jika kunci diperoleh, maka nilai true dikembalikan.
Jika utas saat ini: <ul><li>memiliki status terganggu yang diatur pada entri ke metode ini; atau <li>adalah Thread#interuppt terganggu saat memperoleh kunci, dan gangguan akuisisi kunci didukung, </ul> kemudian InterruptedException dilemparkan dan status terganggu utas saat ini dibersihkan.
Jika waktu tunggu yang ditentukan berlalu, maka nilai false dikembalikan. Jika waktu kurang dari atau sama dengan nol, metode tidak akan menunggu sama sekali.
<b>Pertimbangan< Implementasi/b>
Kemampuan untuk mengganggu akuisisi kunci dalam beberapa implementasi mungkin tidak mungkin, dan jika memungkinkan mungkin merupakan operasi yang mahal. Programmer harus menyadari bahwa ini mungkin terjadi. Implementasi harus mendokumen ketika ini terjadi.
Implementasi dapat mendukung respons terhadap gangguan atas pengembalian metode normal, atau melaporkan batas waktu.
Implementasi Lock mungkin dapat mendeteksi penggunaan kunci yang salah, seperti pemanggilan yang akan menyebabkan kebuntuan, dan dapat melemparkan pengecualian (tidak dicentang) dalam keadaan seperti itu. Keadaan dan jenis pengecualian harus didokumenkan oleh implementasi tersebut Lock .
Java dokumentasi untuk java.util.concurrent.locks.Lock.tryLock(long, java.util.concurrent.TimeUnit).
Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.