Bagaimana Menerapkan Kata Kunci Volatile di Java?



Java adalah salah satu pemrograman yang diberkati dengan banyak fitur. Pada artikel ini kita akan membahas salah satu fitur tersebut yaitu kata kunci volatile di Java.

adalah salah satu program yang diberkati dengan banyak fitur. Pada artikel ini kita akan membahas salah satu fitur tersebut yaitu kata kunci volatile di Java. Petunjuk berikut akan dibahas dalam artikel ini,

Pindah dengan artikel ini tentang Kata Kunci Volatile di Jawa.





untuk apa kerangka pegas digunakan

Kata kunci yang mudah menguap digunakan untuk mengubah nilai variabel dengan utas yang berbeda. Ini juga digunakan untuk membuat kelas aman untuk thread. Ini berarti bahwa beberapa utas dapat menggunakan metode dan instance kelas secara bersamaan tanpa masalah. Kata kunci volatile dapat digunakan baik dengan tipe primitif atau objek.

Contoh

Uji kelas {static int var = 5}

Dalam contoh di atas, asumsikan bahwa dua utas bekerja pada kelas yang sama. Kedua utas berjalan pada prosesor yang berbeda di mana setiap utas memiliki salinan lokal var. Jika ada utas yang mengubah nilainya, perubahan tidak akan tercermin dalam utas asli di memori utama. Ini menyebabkan ketidakkonsistenan data karena utas lain tidak mengetahui nilai yang diubah.



Uji kelas {static volatile int var = 5}

Dalam contoh di atas, variabel statis adalah anggota kelas yang dibagikan di antara semua objek. Hanya ada satu salinan di memori utama. Nilai variabel volatile tidak akan pernah disimpan di cache. Semua membaca dan menulis akan dilakukan dari dan ke memori utama.

Pindah dengan artikel ini tentang Kata Kunci Volatile di Jawa.

Perbedaan antara sinkronisasi dan kata kunci yang mudah menguap

Kata kunci volatile bukanlah pengganti kata kunci tersinkronisasi, tetapi dapat digunakan sebagai alternatif dalam kasus tertentu. Berikut perbedaannya yaitu sebagai berikut:



boneka vs koki vs jenkins
Kata Kunci yang Mudah Menguap Kata Kunci Sinkronisasi
Kata kunci volatile adalah pengubah bidang.Kata kunci tersinkronisasi mengubah blok kode dan metode.
Utas tidak dapat diblokir untuk menunggu jika terjadi volatil.Utas dapat diblokir untuk menunggu jika disinkronkan.
Ini meningkatkan kinerja utas.Metode yang disinkronkan menurunkan kinerja utas.
Ini menyinkronkan nilai satu variabel pada satu waktu antara memori utas dan memori utama.Ini menyinkronkan nilai semua variabel antara memori utas dan memori utama.
Bidang yang mudah menguap tidak tunduk pada pengoptimalan kompiler.Sinkronisasi tunduk pada pengoptimalan compiler.

Pindah dengan artikel ini tentang Kata Kunci Volatile di Jawa.

Contoh:

public class VolatileTest {private static final Logger LOGGER = MyLoggerFactory.getSimplestLogger () private static volatile int MY_INT = 0 public static void main (String [] args) {new ChangeListener (). start () new ChangeMaker (). start ()} kelas statis ChangeListener memperluas Thread {@Override public void run () {int local_value = MY_INT while (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() } } } } } 

Gambar- Volatile-Edureka

Jadi kami telah sampai pada akhir artikel ini tentang 'Kata Kunci Volatile di Jawa'. Jika Anda ingin mempelajari lebih lanjut, lihat Pelatihan Java oleh Edureka, perusahaan pembelajaran online tepercaya. Edureka's Kursus ini dirancang untuk melatih Anda baik konsep inti dan lanjutan Java bersama dengan berbagai kerangka kerja Java seperti Hibernate & Spring.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar blog ini dan kami akan menghubungi Anda kembali secepatnya.

def __init__