Jadual Kandungan
1. Peranan tidak menentu
2. Apakah keterlihatan
mengikut model CPU yang berbeza 3. Apakah kunci dan cache Bas kunci
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
Rumah Java javaTutorial Apakah kegunaan kata kunci yang tidak menentu dalam Java

Apakah kegunaan kata kunci yang tidak menentu dalam Java

May 14, 2023 pm 06:52 PM
java volatile

1. 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

Apakah kegunaan kata kunci yang tidak menentu dalam Java

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
, dibangunkan daripada JDK5, JMM menggunakan model A

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-BeforeKata 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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Akar Kuasa Dua di Jawa Akar Kuasa Dua di Jawa Aug 30, 2024 pm 04:26 PM

Akar Kuasa Dua di Jawa

Nombor Sempurna di Jawa Nombor Sempurna di Jawa Aug 30, 2024 pm 04:28 PM

Nombor Sempurna di Jawa

Penjana Nombor Rawak di Jawa Penjana Nombor Rawak di Jawa Aug 30, 2024 pm 04:27 PM

Penjana Nombor Rawak di Jawa

Nombor Armstrong di Jawa Nombor Armstrong di Jawa Aug 30, 2024 pm 04:26 PM

Nombor Armstrong di Jawa

Weka di Jawa Weka di Jawa Aug 30, 2024 pm 04:28 PM

Weka di Jawa

Nombor Smith di Jawa Nombor Smith di Jawa Aug 30, 2024 pm 04:28 PM

Nombor Smith di Jawa

Soalan Temuduga Java Spring Soalan Temuduga Java Spring Aug 30, 2024 pm 04:29 PM

Soalan Temuduga Java Spring

Cuti atau kembali dari Java 8 Stream Foreach? Cuti atau kembali dari Java 8 Stream Foreach? Feb 07, 2025 pm 12:09 PM

Cuti atau kembali dari Java 8 Stream Foreach?

See all articles