Lingkungan operasi tutorial ini: sistem Windows 7, versi Java 10, komputer DELL G3.
1. Metode perolehan
lock(), tryLock(), tryLock(long time, TimeUnit unit) dan lockInterruptible() semuanya digunakan untuk mendapatkan kunci.
( 1) Metode lock() adalah metode yang paling umum digunakan, yang digunakan untuk mendapatkan kunci . Jika kunci telah diperoleh oleh thread lain, tunggu.
( 2) Metode tryLock() memiliki nilai kembalian, yang berarti digunakan untuk mencoba memperoleh kunci . Jika akuisisi berhasil, ia mengembalikan nilai true. Jika akuisisi gagal (yaitu, kunci telah diakuisisi oleh orang lain thread), ia mengembalikan false, yang berarti metode ini segera kembali apa pun yang terjadi. Anda tidak akan menunggu di sana ketika Anda tidak bisa mendapatkan kuncinya.
( 3) Metode tryLock(long time, TimeUnit unit) mirip dengan metode tryLock(), namun perbedaannya adalah metode ini akan menunggu selama jangka waktu tertentu hingga kunci tidak dapat diperoleh dalam batas waktu, , ia mengembalikan false. Mengembalikan nilai benar jika kunci diperoleh pada awal atau selama masa tunggu.
( 4) Metode lockInterruptible() bersifat khusus. Saat memperoleh kunci melalui metode ini, jika thread menunggu untuk memperoleh kunci, thread dapat merespons interupsi, yaitu mengganggu status menunggu thread. Artinya, ketika dua thread ingin mendapatkan kunci melalui lock.lockInterruptible() pada saat yang sama, jika thread A memperoleh kunci saat ini, dan thread B hanya menunggu, maka metode threadB.interrupt() adalah dipanggil pada thread B. Dapat mengganggu proses menunggu thread B.
2.Contoh
Ambil trylock sebagai contoh.
Kunci kunci = ...; if(lock.tryLock()) { mencoba{ //Memproses tugas }catch(Exception ex){ }Akhirnya{ lock.unlock(); //Lepaskan kunci } }kalau tidak { //Jika kunci tidak dapat diperoleh, lakukan hal lain secara langsung}
Ada banyak metode yang disimpan di antarmuka java untuk memfasilitasi panggilan langsung saat menggunakan thread. Semua orang familiar dengan antarmuka kunci, dan kami telah memiliki pemahaman awal tentang konsep tersebut. Jadi cara mendapatkan kuncinya belum terlalu jelas.
Di atas adalah empat metode perolehan kunci di Java. Setelah membaca artikel ini, Anda dapat memperkuat ingatan dan pemahaman Anda di bidang ini. Jika Anda tertarik dengan metode lain untuk memperoleh kunci, Anda juga dapat menemukan kode yang relevan untuk latihan setelah kelas.