Rumah  >  Artikel  >  Java  >  Contoh analisis soalan temuduga tentang penguncian di Jawa

Contoh analisis soalan temuduga tentang penguncian di Jawa

WBOY
WBOYke hadapan
2023-05-05 08:13:061423semak imbas

1. Perbezaan antara kesan disegerakkan pada kaedah statik dan kaedah bukan statik

Kaedah bukan statik:

Kunci objek (boleh difahami sebagai mengunci objek Memori dikunci (perhatikan bahawa ia hanya memori ini, objek lain dari jenis yang sama akan mempunyai kunci memori mereka sendiri Pada masa ini, jika kaedah penyegerakan objek dilaksanakan dalam lebih daripada satu utas lain (nota: ia adalah objek), pengecualian bersama akan berlaku

Kaedah statik: bersamaan dengan mengunci kelas (*.class terletak dalam kawasan kod, dan kaedah statik terletak dalam kawasan statik. Objek yang dihasilkan oleh kelas ini berkongsi kaedah statik ini, jadi N objek bersaing untuk memori ini),

Pada masa ini, selagi objek yang dihasilkan oleh kelas ini dipanggil, pengecualian bersama akan berlaku apabila kaedah statik ini dipanggil. Iaitu, semua objek kelas ini berkongsi kunci.

2. Apakah jenis kunci

(1) Kunci optimis & kunci pesimis

(2) Kunci putaran & kunci bukan putaran

(3) Kunci masuk semula & kunci bukan masuk semula

(4) Kunci tanpa kunci & ringan & kunci berat sebelah & kunci berat

(5) Kunci Pengecualian Interaksi & kunci kongsi

(6) Kunci adil & kunci tidak adil

3 Beberapa cara penyegerakan benang

pengubahsuaian disegerakkan

Meruap mencapai penyegerakan ( hanya keterlihatan dijamin, bukan atomicity)

Gunakan pembolehubah setempat ThreadLocal

Gunakan kelas atom (AtomicInteger, AtomicBoolean...)

Gunakan Kunci

Gunakan kelas kontena (BlockingQueue, ConcurrentHashMap)

4 Perbezaan antara mekanisme disegerakkan dan kunci

mekanisme penguncian pesimis CPU yang digunakan secara asal, iaitu, benang memperoleh eksklusif. kunci. Kunci eksklusif bermakna bahawa benang lain hanya boleh bergantung pada penyekatan untuk menunggu benang melepaskan kunci.

Kunci menggunakan penguncian optimistik. Apa yang dipanggil penguncian optimistik adalah untuk menyelesaikan operasi tanpa mengunci setiap kali tetapi menganggap bahawa tidak ada konflik Jika ia gagal disebabkan konflik, ia akan dicuba semula sehingga berjaya. Mekanisme yang dilaksanakan oleh penguncian optimistik ialah operasi CAS (Bandingkan dan Tukar).

5. Bercakap tentang isu keselamatan benang

Keselamatan benang adalah isu dalam bidang multi-threading boleh difahami secara ringkas sebagai kaedah atau contoh yang boleh digunakan dalam pelbagai rangkaian tanpa masalah.

Dalam pengaturcaraan berbilang benang Java, pelbagai cara untuk mencapai keselamatan benang Java disediakan:

Cara paling mudah ialah menggunakan kata kunci Penyegerakan

Gunakan java.util kelas daripada pakej concurrent.atomic seperti AtomicInteger

gunakan kunci daripada pakej java.util.concurrent.locks

gunakan koleksi selamat benang ConcurrentHashMap

gunakan perkataan kunci yang tidak menentu , memastikan keterlihatan berubah

Atas ialah kandungan terperinci Contoh analisis soalan temuduga tentang penguncian 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