boleh memastikan keterlihatan pembolehubah yang dikongsi dalam persekitaran berbilang benang
Halang berbilang arahan dengan menambah halangan memori Menyusun semula antara
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 缓存锁
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
, 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
volatile
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!