Semaphore.Acquire Metode

Definisi

Overload

Nama Deskripsi
Acquire()

Memperoleh izin dari semaphore ini, memblokir hingga satu tersedia, atau utasnya adalah Thread#interupted.

Acquire(Int32)

Memperoleh jumlah izin yang diberikan dari semaphore ini, memblokir hingga semua tersedia, atau utasnya adalah Thread#interupted.

Acquire()

Memperoleh izin dari semaphore ini, memblokir hingga satu tersedia, atau utasnya adalah Thread#interupted.

[Android.Runtime.Register("acquire", "()V", "GetAcquireHandler")]
public virtual void Acquire();
[<Android.Runtime.Register("acquire", "()V", "GetAcquireHandler")>]
abstract member Acquire : unit -> unit
override this.Acquire : unit -> unit
Atribut

Pengecualian

jika utas saat ini terganggu

Keterangan

Memperoleh izin dari semaphore ini, memblokir hingga satu tersedia, atau utasnya adalah Thread#interupted.

Memperoleh izin, jika ada yang tersedia dan segera kembali, 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 dua hal terjadi: <ul><li>Beberapa utas lain memanggil metode untuk semaphore ini dan utas #release saat ini berada di samping diberi izin; atau <terletak>Beberapa utas lain#mengganggu utas saat ini. </Ul>

Jika utas saat ini: <ul><li>memiliki status terganggu yang diatur pada entri ke metode ini; atau <li>adalah Thread#interuppt terganggu saat menunggu izin, </ul> kemudian InterruptedException dilemparkan dan status terganggu utas saat ini dibersihkan.

Java dokumentasi untuk java.util.concurrent.Semaphore.acquire().

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

Acquire(Int32)

Memperoleh jumlah izin yang diberikan dari semaphore ini, memblokir hingga semua tersedia, atau utasnya adalah Thread#interupted.

[Android.Runtime.Register("acquire", "(I)V", "GetAcquire_IHandler")]
public virtual void Acquire(int permits);
[<Android.Runtime.Register("acquire", "(I)V", "GetAcquire_IHandler")>]
abstract member Acquire : int -> unit
override this.Acquire : int -> unit

Parameter

permits
Int32

jumlah izin yang akan diperoleh

Atribut

Pengecualian

jika utas saat ini terganggu

jika permits negatif

Keterangan

Memperoleh jumlah izin yang diberikan dari semaphore ini, memblokir hingga semua tersedia, atau utasnya adalah Thread#interupted.

Memperoleh jumlah izin yang diberikan, jika tersedia, dan segera kembali, mengurangi jumlah izin yang tersedia dengan jumlah yang diberikan. Metode ini memiliki efek yang sama dengan perulangan for (int i = 0; i < permits; ++i) acquire(); kecuali bahwa ia secara atomis memperoleh izin sekaligus:

Jika izin yang tidak mencukupi tersedia, maka utas saat ini menjadi dinonaktifkan untuk tujuan penjadwalan utas dan terletak tidak aktif sampai salah satu dari dua hal terjadi: <ul<>li>Beberapa utas lain memanggil salah #release() release satu metode untuk semaphore ini dan utas saat ini di sebelah untuk ditetapkan izin dan jumlah izin yang tersedia memenuhi permintaan ini; atau <li>Beberapa thread Thread lainnya#interupsi mengganggu utas saat ini. </Ul>

Jika utas saat ini: <ul><li>memiliki status terganggu yang diatur pada entri ke metode ini; atau <li>adalah Thread#interuppt terganggu saat menunggu izin, </ul> kemudian InterruptedException dilemparkan dan status terganggu utas saat ini dibersihkan. Setiap izin yang akan ditetapkan ke utas ini sebagai gantinya ditetapkan ke utas lain yang mencoba memperoleh izin, seolah-olah izin telah tersedia melalui panggilan ke #release().

Java dokumentasi untuk java.util.concurrent.Semaphore.acquire(int).

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