Apakah kegunaan kata kunci yang tidak menentu dalam Java
May 14, 2023 pm 06:52 PM1. Peranan tidak menentu
boleh memastikan keterlihatan pembolehubah yang dikongsi dalam persekitaran berbilang benang
Halang berbilang arahan dengan menambah halangan memori Menyusun semula antara
2. Apakah keterlihatan
Keterlihatan bermakna apabila satu utas mengubah suai pembolehubah yang dikongsi, utas lain boleh melihat dengan serta-merta nilai pengubahsuaian A, keterlihatan pada asasnya disebabkan oleh beberapa aspek
cache peringkat cpu Dalam CPU, cache peringkat ketiga direka untuk menyelesaikan masalah kecekapan pengkomputeran CPU dan Terdapat a masalah kecekapan IO memori, tetapi ia juga membawa masalah ketekalan cache Dalam kes pelaksanaan berbilang benang, masalah ketekalan cache akan membawa kepada masalah keterlihatan, adalah penting untuk menambah volatile
Pembolehubah kongsi yang diubah suai daripada perkataan itu, mesin maya JVM akan menambah arahan pemasangan #kunci secara automatik, dan arahan ini secara automatik akan menambah 总线锁
atau 缓存锁
mengikut model CPU yang berbeza 3. Apakah kunci dan cache Bas kunci
Kunci bas mengunci bas bahagian hadapan CPU, yang menyebabkan hanya satu utas berkomunikasi dengan memori pada masa yang sama, sekali gus mengelak masalah keterlihatan
Kunci cache ialah pengoptimuman kunci bas Kerana kunci bas menyebabkan kecekapan penggunaan CPU menurun dengan ketara, kunci cache hanya untuk cache peringkat ketiga CPU dikunci, dan kunci cache dilaksanakan menggunakan protokol ketekalan cache MESI
4. Apakah penyusunan semula arahan Susunan data dan perintah pelaksanaan tidak konsisten, yang membawa kepada masalah keterlihatan dalam berbilang -persekitaran berulir. Penyusunan semula arahan pada asasnya adalah cara pengoptimuman prestasi Penyusunan semula arahan datang dari beberapa aspek
- Tahap CPU terus mengoptimumkan
- untuk meningkatkan penggunaan CPU
, dan mekanisme pengoptimuman ini akan membawa kepada pelaksanaan CPU di luar pesanan Untuk mengelakkan masalah tersebut, CPU menyediakan arahan penghalang memori boleh memasukkan halangan memori di tempat yang sesuai untuk mengelakkan masalah penyusunan semula arahan CPU
MESI协议
StoreBuffer
Pengkompil sedang dalam proses penyusunan , tanpa mengubah semantik satu utas dan ketepatan program, arahan disusun semula secara munasabah untuk mengoptimumkan prestasi keseluruhan kata kunci - ditambahkan pada pembolehubah yang dikongsi, tahap pengkompil tidak akan dicetuskan, dan dalam jvm, ia akan memasukkan arahan penghalang memori untuk mengelakkan masalah penyusunan semula
volatile
Dalam. tambahan kepada kata kunci
digunakan untuk menerangkan hubungan keterlihatan berbilang benang, iaitu, terdapat hubungan volatile
antara dua operasi, kemudian kedua-dua operasi ini mempunyai hubungan keterlihatan dan tidak perlu mempertimbangkan untuk menambah Happens-Before
Kata kunci memberikan jaminan keterlihatanHappens-Before
Atas ialah kandungan terperinci Apakah kegunaan kata kunci yang tidak menentu dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Cuti atau kembali dari Java 8 Stream Foreach?
