adalah salah satu pengaturcaraan yang diberkati dengan banyak ciri. Dalam artikel ini kita akan meneroka satu ciri seperti kata kunci yang tidak stabil di Java. Petunjuk berikut akan dibahas dalam artikel ini,
dapatkan ukuran javascript array
Melanjutkan dengan artikel ini mengenai Kata Kunci Volatile di Java.
Kata kunci yang tidak stabil digunakan untuk mengubah nilai pemboleh ubah dengan utas yang berbeza. Ia juga digunakan untuk menjadikan kelas selamat di dalam benang. Ini bermaksud bahawa banyak utas dapat menggunakan kaedah dan contoh kelas pada masa yang sama tanpa masalah. Kata kunci tidak stabil boleh digunakan sama ada dengan jenis primitif atau objek.
Contohnya
Ujian kelas {static int var = 5}
Dalam contoh di atas, anggap bahawa dua utas berfungsi pada kelas yang sama. Kedua-dua utas berjalan pada pemproses yang berbeza di mana setiap utas mempunyai salinan var tempatan. Sekiranya ada utas yang mengubah nilainya, perubahan tersebut tidak akan dapat dilihat pada yang asal dalam memori utama. Ini membawa kepada ketidakkonsistenan data kerana utas lain tidak mengetahui nilai yang diubah.
Ujian kelas {stat static volatile int var = 5}
Dalam contoh di atas, pemboleh ubah statik adalah ahli kelas yang dikongsi di antara semua objek. Hanya ada satu salinan dalam memori utama. Nilai pemboleh ubah tidak menentu tidak akan disimpan dalam cache. Semua membaca dan menulis akan dilakukan dari dan ke memori utama.
Melanjutkan dengan artikel ini mengenai Kata Kunci Volatile di Java.
Perbezaan antara penyegerakan dan kata kunci tidak menentu
Kata kunci tidak stabil bukan pengganti kata kunci yang disegerakkan, tetapi boleh digunakan sebagai alternatif dalam kes tertentu. Terdapat perbezaan seperti berikut:
Kata kunci yang tidak menentu | Kata Kunci Penyegerakan |
Kata kunci tidak stabil adalah pengubah medan. | Kata kunci yang disegerakkan mengubah blok kod dan kaedah. |
Benang tidak dapat disekat untuk menunggu sekiranya tidak menentu. | Benang boleh disekat untuk menunggu sekiranya disegerakkan. |
Ia meningkatkan prestasi benang. | Kaedah disegerakkan menurunkan prestasi utas. |
Ia menyegerakkan nilai satu pemboleh ubah pada satu masa antara memori utas dan memori utama. | Ia menyegerakkan nilai semua pemboleh ubah antara memori utas dan memori utama. |
Medan tidak stabil tidak dikenakan pengoptimuman penyusun. | Penyegerakan tertakluk kepada pengoptimuman penyusun. |
Melanjutkan dengan artikel ini mengenai Kata Kunci Volatile di Java.
jadual bagaimana menggabungkan data
Contoh:
kelas awam VolatileTest {private static final Logger LOGGER = MyLoggerFactory.getSimplestLogger () private static volatile int MY_INT = 0 public static void main (String [] args) {new ChangeListener (). start () ChangeMaker baru (). start ()} ChangeListener kelas statik memanjangkan Thread {@ Override public void run () {int local_value = MY_INT sementara (local_value<5){ if( local_value!= MY_INT){ LOGGER.log(Level.INFO,'Got Change for MY_INT : {0}', MY_INT) local_value= MY_INT } } } } static class ChangeMaker extends Thread{ @Override public void run() { int local_value = MY_INT while (MY_INT <5){ LOGGER.log(Level.INFO, 'Incrementing MY_INT to {0}', local_value+1) MY_INT = ++local_value try { Thread.sleep(500) } catch (InterruptedException e) { e.printStackTrace() } } } } }
Oleh itu, kita telah mengakhiri artikel ini mengenai 'Kata Kunci Volatil di Jawa'. Sekiranya anda ingin mempelajari lebih lanjut, lihat Java Training oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai. Edureka's kursus dirancang untuk melatih anda untuk konsep Java teras dan maju bersama dengan pelbagai kerangka kerja Java seperti Hibernate & Spring.
apakah model pengaturcaraan berasaskan pojo
Ada soalan untuk kami? Sila sebutkan di bahagian komen blog ini dan kami akan menghubungi anda secepat mungkin.