Mengikut soalan, apakah senario penggunaan perniagaan khusus kelas berprestasi tinggi seperti ConcurrentHashMap?
HashMap biasanya paling kerap digunakan apabila kami menulis kod, dan kami sudah terbiasa dengannya
Tetapi terdapat Peta berprestasi tinggi lain di Jawa, dan saya rasa seperti biasanya saya tidak menggunakannya
Selepas mencari di Baidu, saya hanya nampak perbezaan antara HashMap dan ConcurrentHashMap
Tetapi saya tidak tahu senario penggunaan perniagaan tertentu yang akan menggunakan kelas ini
Jadi saya rasa sedikit keliru, harap senior dapat memberi tunjuk ajar kepada saya, terima kasih
ConcurrentHashMap ialah kelas alat di bawah pakej java.util.concurrent untuk mengelakkan concurrency. Untuk kegunaan perniagaan, kelas concurrency anda sendiri juga boleh melaksanakan ThreadLocal. . .
Terutama digunakan dalam berbilang benang versi terdahulu menggunakan blok penyegerakan yang disegerakkan, yang tidak mudah untuk menyelesaikan masalah seperti mengunci dan melepaskan. Sekarang semuanya ditulis secara rasmi dalam Java, lihat sahaja pada multi-threading. . .
Sebagai contoh, dalam senario perniagaan, maklumat kakitangan syarikat disimpan dalam pangkalan data berbilang benang. Jika anda menggunakan java.util.List, data dalam setiap rangkaian akan menjadi tidak konsisten kelas. Perkara utama yang perlu diambil perhatian ialah apabila membaca
写
data, ia tidak penting. . .ConcurrentHashMap direka khas untuk akses oleh berbilang rangkaian. Contohnya:
Apabila terdapat ramai pengguna log masuk dan keluar pada masa yang sama,
onUserSignIn()
和onUserSignOut()
akan ada banyak benang yang memanggil pada masa yang sama.Terima kasih atas jemputan.
Anda kena tahu dahulu:
Melakukan operasi pada objek yang tidak dilindungi dalam berbilang urutan akan mengakibatkan status tidak konsisten untuk semua orang.
Anda boleh membuka beberapa utas untuk meletakkan dan mengalih keluar peta cincang biasa, dengan syarat ia berada dalam keadaan tertentu, seperti elemen di dalamnya memenuhi keperluan tertentu, lebih besar daripada atau sama dengan nombor tertentu, dsb.
ConcurrentHashMap
ialah peta serentak yang disediakan dalam pakej konkurensi jdk, yang boleh menghalang ketidakkonsistenan salinan objek apabila berbilang benang mengendalikan objek.Anda boleh mencari adegan itu di Baidu.
Perbezaannya anda sepatutnya sudah tahu.
Untuk memastikan keselamatan benang, kami biasanya menggunakan kata kunci Synchronize Dengan ConcurrentHashMap, anda tidak perlu lagi menggunakan kaedah Synchronize yang menyusahkan Selain itu, ConcurrentHashMap biasanya digunakan dalam situasi berbilang benang Baca lebih lanjut dan kurangkan situasi. Tidak semua multi-thread boleh menggunakan kelas alat konkurensi ini.