Semaphore.TryAcquire 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
| TryAcquire() |
Memperoleh izin dari semaphore ini, hanya jika ada yang tersedia pada saat pemanggilan. |
| TryAcquire(Int32) |
Memperoleh jumlah izin yang diberikan dari semaphore ini, hanya jika semua tersedia pada saat pemanggilan. |
| TryAcquire(Int64, TimeUnit) |
Memperoleh izin dari semaphore ini, jika ada yang tersedia dalam waktu tunggu yang diberikan dan utas saat ini belum Thread#interupted. |
| TryAcquire(Int32, Int64, TimeUnit) |
Memperoleh jumlah izin yang diberikan dari semaphore ini, jika semua tersedia dalam waktu tunggu yang diberikan dan utas saat ini belum Thread#interupted. |
TryAcquire()
Memperoleh izin dari semaphore ini, hanya jika ada yang tersedia pada saat pemanggilan.
[Android.Runtime.Register("tryAcquire", "()Z", "GetTryAcquireHandler")]
public virtual bool TryAcquire ();
[<Android.Runtime.Register("tryAcquire", "()Z", "GetTryAcquireHandler")>]
abstract member TryAcquire : unit -> bool
override this.TryAcquire : unit -> bool
Mengembalikan
true jika izin diperoleh dan false sebaliknya
- Atribut
Keterangan
Memperoleh izin dari semaphore ini, hanya jika ada yang tersedia pada saat pemanggilan.
Memperoleh izin, jika ada yang tersedia dan segera dikembalikan, dengan nilai true, mengurangi jumlah izin yang tersedia satu per satu.
Jika tidak ada izin yang tersedia, metode ini akan segera kembali dengan nilai false.
Bahkan ketika semaphore ini telah diatur untuk menggunakan kebijakan pemesanan yang adil, panggilan ke tryAcquire()<em>akan< segera> memperoleh izin jika ada yang tersedia, apakah utas lain saat ini sedang menunggu atau tidak. Ini & barging" dapat berguna dalam keadaan tertentu, meskipun melanggar kewajaran. Jika Anda ingin menghormati pengaturan kewajaran, gunakan #tryAcquire(long, TimeUnit) tryAcquire(0, TimeUnit.SECONDS) yang hampir setara (juga mendeteksi gangguan).
Dokumentasi Java untuk java.util.concurrent.Semaphore.tryAcquire().
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
TryAcquire(Int32)
Memperoleh jumlah izin yang diberikan dari semaphore ini, hanya jika semua tersedia pada saat pemanggilan.
[Android.Runtime.Register("tryAcquire", "(I)Z", "GetTryAcquire_IHandler")]
public virtual bool TryAcquire (int permits);
[<Android.Runtime.Register("tryAcquire", "(I)Z", "GetTryAcquire_IHandler")>]
abstract member TryAcquire : int -> bool
override this.TryAcquire : int -> bool
Parameter
- permits
- Int32
jumlah izin yang akan diperoleh
Mengembalikan
true jika izin diperoleh dan false sebaliknya
- Atribut
Pengecualian
jika permits negatif
Keterangan
Memperoleh jumlah izin yang diberikan dari semaphore ini, hanya jika semua tersedia pada saat pemanggilan.
Memperoleh jumlah izin yang diberikan, jika tersedia, dan segera kembali, dengan nilai true, mengurangi jumlah izin yang tersedia dengan jumlah yang diberikan.
Jika izin yang tidak mencukup tersedia, metode ini akan segera kembali dengan nilai false dan jumlah izin yang tersedia tidak berubah.
Bahkan ketika semaphore ini telah diatur untuk menggunakan kebijakan pemesanan yang adil, panggilan ke tryAcquire<em>akan< segera> memperoleh izin jika ada yang tersedia, apakah utas lain saat ini sedang menunggu atau tidak. Ini & barging" dapat berguna dalam keadaan tertentu, meskipun melanggar kewajaran. Jika Anda ingin menghormati pengaturan kewajaran, gunakan #tryAcquire(int, long, TimeUnit) tryAcquire(permits, 0, TimeUnit.SECONDS) yang hampir setara (juga mendeteksi gangguan).
Dokumentasi Java untuk java.util.concurrent.Semaphore.tryAcquire(int).
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
TryAcquire(Int64, TimeUnit)
Memperoleh izin dari semaphore ini, jika ada yang tersedia dalam waktu tunggu yang diberikan dan utas saat ini belum Thread#interupted.
[Android.Runtime.Register("tryAcquire", "(JLjava/util/concurrent/TimeUnit;)Z", "GetTryAcquire_JLjava_util_concurrent_TimeUnit_Handler")]
public virtual bool TryAcquire (long timeout, Java.Util.Concurrent.TimeUnit? unit);
[<Android.Runtime.Register("tryAcquire", "(JLjava/util/concurrent/TimeUnit;)Z", "GetTryAcquire_JLjava_util_concurrent_TimeUnit_Handler")>]
abstract member TryAcquire : int64 * Java.Util.Concurrent.TimeUnit -> bool
override this.TryAcquire : int64 * Java.Util.Concurrent.TimeUnit -> bool
Parameter
- timeout
- Int64
waktu maksimum untuk menunggu izin
- unit
- TimeUnit
unit timeout waktu argumen
Mengembalikan
true jika izin diperoleh dan false jika waktu tunggu berlalu sebelum izin diperoleh
- Atribut
Pengecualian
jika utas saat ini terganggu
Keterangan
Memperoleh izin dari semaphore ini, jika ada yang tersedia dalam waktu tunggu yang diberikan dan utas saat ini belum Thread#interupted.
Memperoleh izin, jika ada yang tersedia dan segera dikembalikan, dengan nilai true, mengurangi jumlah izin yang tersedia satu per satu.
Jika tidak ada izin yang tersedia maka utas saat ini menjadi dinonaktifkan untuk tujuan penjadwalan utas dan terletak tidak aktif sampai salah satu dari tiga hal terjadi: <ul<>li>Beberapa utas lain memanggil metode untuk semaphore ini dan utas #release saat ini berada di samping diberi izin; atau <li>Beberapa thread Thread lainnya#interupsi mengganggu utas saat ini; atau <li>Waktu tunggu yang ditentukan berlalu. </Ul>
Jika izin 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 menunggu untuk memperoleh izin, </ul> kemudian InterruptedException dilemparkan dan status terganggu utas saat ini dihapus.
Jika waktu tunggu yang ditentukan berlalu, maka nilai false dikembalikan. Jika waktu kurang dari atau sama dengan nol, metode tidak akan menunggu sama sekali.
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
TryAcquire(Int32, Int64, TimeUnit)
Memperoleh jumlah izin yang diberikan dari semaphore ini, jika semua tersedia dalam waktu tunggu yang diberikan dan utas saat ini belum Thread#interupted.
[Android.Runtime.Register("tryAcquire", "(IJLjava/util/concurrent/TimeUnit;)Z", "GetTryAcquire_IJLjava_util_concurrent_TimeUnit_Handler")]
public virtual bool TryAcquire (int permits, long timeout, Java.Util.Concurrent.TimeUnit? unit);
[<Android.Runtime.Register("tryAcquire", "(IJLjava/util/concurrent/TimeUnit;)Z", "GetTryAcquire_IJLjava_util_concurrent_TimeUnit_Handler")>]
abstract member TryAcquire : int * int64 * Java.Util.Concurrent.TimeUnit -> bool
override this.TryAcquire : int * int64 * Java.Util.Concurrent.TimeUnit -> bool
Parameter
- permits
- Int32
jumlah izin yang akan diperoleh
- timeout
- Int64
waktu maksimum untuk menunggu izin
- unit
- TimeUnit
unit timeout waktu argumen
Mengembalikan
true jika semua izin diperoleh dan false jika waktu tunggu berlalu sebelum semua izin diperoleh
- Atribut
Pengecualian
jika utas saat ini terganggu
jika permits negatif
Keterangan
Memperoleh jumlah izin yang diberikan dari semaphore ini, jika semua tersedia dalam waktu tunggu yang diberikan dan utas saat ini belum Thread#interupted.
Memperoleh jumlah izin yang diberikan, jika tersedia dan segera dikembalikan, dengan nilai true, mengurangi jumlah izin yang tersedia dengan jumlah yang diberikan.
Jika izin yang tidak mencukupi tersedia, maka utas saat ini menjadi dinonaktifkan untuk tujuan penjadwalan utas dan terletak tidak aktif sampai salah satu dari tiga hal terjadi: ul>li Beberapa utas lain memanggil salah #release() release satu metode untuk semaphore ini dan utas saat ini berada di samping izin yang ditetapkan dan jumlah izin yang tersedia memenuhi permintaan ini; atau <li>Beberapa thread Thread lainnya#interupsi mengganggu utas saat ini; atau <li>><<Waktu tunggu yang ditentukan berlalu. </Ul>
Jika izin 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#interrupt terganggu saat menunggu untuk memperoleh izin, </ul> kemudian InterruptedException dilemparkan dan status terganggu utas saat ini dibersihkan. Setiap izin yang akan ditetapkan ke utas ini, sebaliknya ditetapkan ke utas lain yang mencoba memperoleh izin, seolah-olah izin telah tersedia melalui panggilan ke #release().
Jika waktu tunggu yang ditentukan berlalu, maka nilai false dikembalikan. Jika waktu kurang dari atau sama dengan nol, metode tidak akan menunggu sama sekali. Setiap izin yang akan ditetapkan ke utas ini, sebaliknya ditetapkan ke utas lain yang mencoba memperoleh izin, seolah-olah izin telah tersedia melalui panggilan ke #release().
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.