Belajar Memakai Keyword Volatile Di Bahasa Jadwal Java

Apa itu Volatile ? volatile merupakan salah satu jenis keyword yang terdapat di bahasa pemrograman java ,yang dimana fungsinya untuk mencegah thread , menyembunyikan (caching) nilai pada variable. Keyword ini dipakai untuk menandai suatu variable ,yang disimpan di memori utama. 

Lebih tepatnya ,yang berarti bahwa , setiap kali pembacaan variable yang memakai keyword volatile , akan dibaca di memori utama komputer , bukan dari cache CPU. Serta , setiap kali penulisan variable yang memakai keyword volatile , akan ditulis ke memori utama , dan bukan hanya ke cache CPU. Karena proses ini terjadi di  dalam sistem pada dikala runtime , jadi ketika kita menjalankan programnya ,tidak ada perbedaan secara jelas, pada tampilan output. 


 yang terdapat di bahasa pemrograman java  Belajar Menggunakan Keyword Volatile di Bahasa Program Java

Keyword volatile biasa digunakan  ,ketika sebuah mutable variable (variable yang berubah-ubah nilainya) sanggup diakses oleh beberapa Thread. Makara bila kalian ingin variable sanggup dimodifikasi dari thread lain , kalian harus memakai keyword volatile. Pada artikel berguru java kali ini ,kita akan berguru mengenal penggunaan keyword volatile ,di bahasa pemrograman java. Selengkapnya berikut mari kita simak lebih lanjut :





Bagaimana volatile di java menjamin visibilitas ?

Dalam sebuah aplikasi multithread , setiap thread akan  menciptakan salinan lokal , dari variable yang disimpan ke dalam memori utama, untuk beberapa alasan performa. 
Sebuah sistem mungkin sanggup mempunyai banyak CPU , dan setiap CPU mungkin mempunyai beberapa thread ,yang sedang berjalan. Setiap thread akan menyalin , variable dari memori utama , ke cache CPU. 

Yang menjadi masalahnya  yaitu ,  bahwa JVM (Java Virtual Machine) tidak menjamin proses penyalinan variable , dari memori utama ke cache CPU , dan cache CPU ke memori utama. Karena duduk kasus ketidakpastian ini, sebuah thread tidak akan pernah mendapat nilai atau value terbaru yang diperbarui.

Sekarang kita coba pahami dengan sebuah pola , bayangkan bila terdapat 2 thread , yaitu Thread 1 dan Thread 2 , keduanya memakai objek bersama ,yang mempunyai variable non-volatile( tidak memakai keyword volatile) .

Contoh Code :

 yang terdapat di bahasa pemrograman java  Belajar Menggunakan Keyword Volatile di Bahasa Program Java
Contoh variable non-volatile

Contoh ilustrasinya , akan ibarat ini :


 yang terdapat di bahasa pemrograman java  Belajar Menggunakan Keyword Volatile di Bahasa Program Java
Contoh gambar ilustrasi 

Thread 1 akan menambah (increment) variable counter , dan Thread 2 membaca variable counter. Masalahnya yaitu , alasannya yaitu variable tidak gampang berubah , sehingga Thread 1 akan memperbarui nilai variable counter , di cache CPU. Oleh alasannya yaitu itu , tidak ada jaminan bahwa , ketika nilai terbaru dari variable counter  akan diperbarui , dalam memori utama. Serta Thread 2 ,tidak akan selalu membaca nilai terbaru , yang diperbarui , dari Thread 1.


Sepeti yang kalian lihat pada gambar di atas , variable yang tidak memakai keyword volatile , tidak terlihat nilainya di semua thread. Untuk itu ,kita perlu memakai keyword volatile pada variable , semoga duduk kasus ini teratasi.

Contoh Code :

 yang terdapat di bahasa pemrograman java  Belajar Menggunakan Keyword Volatile di Bahasa Program Java
Contoh variable volatile


Hubungan Happens-Before

Hubungan happens-before , akan memastikan bahwa perubahan apa pun yang dilakukan oleh satu thread  akan terlihat oleh thread lain. Makara perubahan apa pun yang terjadi pada  variabel volatile dari  satu thread , akan berdampak atau  terlihat ke thread lain,  dan ini yaitu salah satu pola hubungan happens-before terjadi.

Belum ada Komentar untuk "Belajar Memakai Keyword Volatile Di Bahasa Jadwal Java"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel