Kunci Pembaca-Penulis, seperti namanya, ialah kunci yang dibahagikan kepada dua bahagian: kunci baca dan kunci tulis dibenarkan berbilang Benang memperolehnya pada masa yang sama, kerana operasi baca itu sendiri adalah selamat untuk benang, dan kunci tulis ialah kunci pengecualian bersama Berbilang benang tidak dibenarkan untuk mendapatkan kunci tulis pada masa yang sama, dan operasi tulis serta operasi baca juga saling eksklusif. Secara ringkasnya, ciri-ciri kunci baca-tulis ialah: membaca dan membaca tidak saling eksklusif, membaca dan menulis adalah saling eksklusif, dan menulis dan menulis adalah saling eksklusif.
Dalam bahasa Java, kunci baca-tulis dilaksanakan menggunakan kelas ReentrantReadWriteLock, di mana:
ReentrantReadWriteLock.ReadLock
bermaksud kunci baca, yang menyediakan kaedah kunci untuk mengunci dan kaedah buka kunci untuk membuka kunci.
ReentrantReadWriteLock.WriteLock
mewakili kunci tulis, yang menyediakan kaedah kunci untuk mengunci dan kaedah buka kunci untuk membuka kunci.
Penggunaan asasnya adalah seperti yang ditunjukkan dalam kod berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Berbilang urutan boleh memperoleh kunci baca pada masa yang sama, yang dipanggil baca dan baca pengecualian bukan bersama, seperti yang ditunjukkan dalam kod berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
Pelaksanaan keputusan program di atas adalah seperti berikut:
Kunci baca dan tulis adalah saling eksklusif (iaitu, mereka tidak boleh diperoleh pada masa yang sama) apabila digunakan pada masa yang sama Ini dipanggil Ia adalah saling eksklusif untuk membaca dan menulis, seperti yang ditunjukkan dalam kod berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
Hasil pelaksanaan program di atas adalah seperti berikut:
Berbilang rangkaian menggunakan kunci tulis pada masa yang sama juga saling eksklusif Ini dipanggil pengecualian bersama tulis-tulis, seperti yang ditunjukkan dalam kod berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
Hasil pelaksanaan program di atas. adalah seperti berikut:
Peningkatan prestasi pelaksanaan Program: Pelbagai. kunci baca boleh dilaksanakan pada masa yang sama Berbanding dengan kunci biasa yang mesti beratur untuk pelaksanaan dalam apa jua keadaan, kunci baca-tulis meningkatkan prestasi pelaksanaan program.
Elakkan membaca data sementara: Kunci baca dan kunci tulis adalah saling eksklusif dan beratur untuk pelaksanaan, yang memastikan operasi baca tidak akan separuh dibaca dan ditulis data sementara.
Atas ialah kandungan terperinci Apakah penggunaan dan kelebihan kunci baca-tulis Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!