Rumah Pembangunan Apakah yang tidak menentu? - definisi dari techopedia

Apakah yang tidak menentu? - definisi dari techopedia

Isi kandungan:

Anonim

Takrif - Apakah maksud meruap?

Volatile adalah kata kunci dalam bahasa pemrograman java yang menentukan bahawa variabel pembolehubah yang dikaitkan dengan kelas dapat diubah secara asynchronously oleh beberapa thread. Kata kunci yang tidak menentu dalam kod bertindak sebagai pengubah suai apabila ahli diisytiharkan. Kata kunci pada dasarnya adalah kata-kata tersendiri dengan makna tersendiri dalam konteks pengkompil.

Kata kunci yang tidak menentu digunakan apabila pemboleh ubah menandakan beberapa pembolehubah yang bergantung kepada alam sekitar atau sistem, seperti penghitung mudah dan jam.

Techopedia menerangkan Volatile

Kata kunci tidak menentu memastikan setiap akses membaca kepada pembolehubah ahli mengembalikan nilai yang paling terkini. Ini tidak berkesan apabila perubahan baru-baru ini dilakukan menggunakan benang yang berbeza. Jika pembolehubah anggota tidak diisytiharkan sebagai tidak menentu, thread tidak dapat mengenali pengubahsuaian yang dilakukan dengan menggunakan thread yang berbeda.

Untuk ahli ganda atau panjang, kata kunci tidak menentu juga memastikan bahawa mesin maya tidak akan menghasilkan dua menulis berturut-turut 32-bit, tetapi hanya akan membuat satu menulis 64-bit. Jika ini tidak boleh dilaksanakan, pelaksanaan JVM terus memastikan atomiti fungsi ini supaya bahagian bawah yang lebih lama tidak akan dibaca dengan separuh yang lebih tinggi daripada beberapa tidak menentu ganda atau panjang.

Menulis dan membacanya meruap membina hubungan sebelum berlaku. Sebelum objek tidak dapat dicapai, penyegerakan berlaku di antara memori utama dan pembolehubah cache, seperti yang berlaku sebelum memasuki atau selepas meninggalkan blok disegerakkan. Ini menunjukkan bahawa objek tidak menentu boleh diterbitkan dengan selamat tanpa penyegerakan; iaitu, apabila objek tidak menentu diakses oleh benang, ahli objek tersebut juga dikemas kini.

Apabila pembolehubah digambarkan sebagai tidak menentu, pengkompil JVM dan Java melakukan dua perkara berikut.

  1. Pengkompil gagal untuk memaksimumkan penyataan dan ungkapan yang berkaitan dengan pemboleh ubah tersebut.
  2. JVM menyegerakkan pembolehubah.

Kelebihan tidak menentu adalah seperti berikut:

  • Ia ringan
  • Ia menyebabkan overhead yang sangat kecil untuk membaca dan menulis, tetapi masih lebih cepat daripada mengunci.
  • Tidak menentu adalah tahan terhadap kunci mati.
Apakah yang tidak menentu? - definisi dari techopedia