Rumah  >  Artikel  >  Java  >  Apakah kaedah pemerolehan kunci di Jawa?

Apakah kaedah pemerolehan kunci di Jawa?

王林
王林ke hadapan
2023-05-19 13:13:061948semak imbas

1. Kaedah pemerolehan

kunci(), tryLock(), tryLock(masa lama, unit TimeUnit) dan lockInterruptibly() semuanya digunakan untuk memperoleh kunci.

(1) Kaedah lock() ialah kaedah yang paling biasa digunakan, yang digunakan untuk mendapatkan kunci. Jika kunci telah diperolehi oleh benang lain, tunggu.

(2) Kaedah tryLock() mempunyai nilai pulangan, yang bermaksud ia digunakan untuk cuba memperoleh kunci Jika pemerolehan berjaya, ia akan kembali benar pemerolehan gagal (iaitu, kunci telah diperoleh oleh pemerolehan Thread lain), ia mengembalikan palsu, yang bermaksud bahawa kaedah ini akan kembali serta-merta tidak kira apa. Anda tidak akan menunggu di sana apabila anda tidak boleh mendapatkan kunci.

(3) Kaedah tryLock(masa lama, unit TimeUnit) adalah serupa dengan kaedah tryLock(), tetapi satu-satunya perbezaan ialah kaedah ini akan menunggu untuk tempoh masa tertentu apabila ia tidak mendapat kunci , jika kunci tidak dapat diperoleh dalam had masa, palsu akan dikembalikan. Mengembalikan benar jika kunci diperoleh pada mulanya atau semasa tempoh menunggu.

(4) Kaedah lockInterruptibly() adalah istimewa Apabila memperoleh kunci melalui kaedah ini, jika benang sedang menunggu untuk memperoleh kunci, benang boleh bertindak balas kepada gangguan, iaitu, mencelah. keadaan menunggu benang. Dalam erti kata lain, apabila dua utas ingin memperoleh kunci melalui lock.lockInterruptibly() pada masa yang sama, jika thread A memperoleh kunci pada masa ini dan thread B hanya menunggu, maka threadB.interrupt dipanggil benang B. Kaedah () boleh mengganggu proses menunggu benang B.

2. Contoh

Ambil trylock sebagai contoh.

rreeee

Atas ialah kandungan terperinci Apakah kaedah pemerolehan kunci di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam