Belajar Memakai Keyword Volatile Di Bahasa Aktivitas Java
Wednesday, April 4, 2018
Add Comment
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 ketika runtime , jadi ketika kita menjalankan programnya ,tidak ada perbedaan secara jelas, pada tampilan output.
Keyword volatile biasa digunakan ,ketika sebuah mutable variable (variable yang berubah-ubah nilainya) sanggup diakses oleh beberapa Thread. Kaprikornus jikalau 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 :
Baca juga : Belajar Mengenal Proses dan Thread pada Komputer
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 ialah , bahwa JVM (Java Virtual Machine) tidak menjamin proses penyalinan variable , dari memori utama ke cache CPU , dan cache CPU ke memori utama. Karena dilema ketidakpastian ini, sebuah thread tidak akan pernah mendapat nilai atau value terbaru yang diperbarui.
Sekarang kita coba pahami dengan sebuah rujukan , bayangkan jikalau terdapat 2 thread , yaitu Thread 1 dan Thread 2 , keduanya memakai objek bersama ,yang mempunyai variable non-volatile( tidak memakai keyword volatile) .
Contoh Code :
Contoh variable non-volatile |
Contoh ilustrasinya , akan menyerupai ini :
Contoh gambar ilustrasi |
Thread 1 akan menambah (increment) variable counter , dan Thread 2 membaca variable counter. Masalahnya ialah , sebab variable tidak gampang berubah , sehingga Thread 1 akan memperbarui nilai variable counter , di cache CPU. Oleh sebab 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 , biar dilema ini teratasi.
Contoh Code :
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. Kaprikornus perubahan apa pun yang terjadi pada variabel volatile dari satu thread , akan berdampak atau terlihat ke thread lain, dan ini ialah salah satu rujukan kekerabatan happens-before terjadi.
0 Response to "Belajar Memakai Keyword Volatile Di Bahasa Aktivitas Java"
Post a Comment
Blog ini merupakan Blog Dofollow, karena beberapa alasan tertentu, sobat bisa mencari backlink di blog ini dengan syarat :
1. Tidak mengandung SARA
2. Komentar SPAM dan JUNK akan dihapus
3. Tidak diperbolehkan menyertakan link aktif
4. Berkomentar dengan format (Name/URL)
NB: Jika ingin menuliskan kode pada komentar harap gunakan Tool untuk mengkonversi kode tersebut agar kode bisa muncul dan jelas atau gunakan tool dibawah "Konversi Kode di Sini!".
Klik subscribe by email agar Anda segera tahu balasan komentar Anda