Daftar Isi:
Definisi - Apa yang dimaksud dengan Atomic?
Atomic adalah toolkit dari variabel paket java.util.concurrent.atomic, yang membantu dalam penulisan kunci dan algoritma bebas-tunggu dengan bahasa Java. Algoritma yang hanya membutuhkan sebagian utas untuk kemajuan konstan bebas dari penguncian. Dalam algoritme bebas-tunggu, semua utas membuat kemajuan terus-menerus, bahkan dalam kasus kegagalan atau keterlambatan utas. Algoritma kunci dan tunggu-bebas juga dikenal sebagai algoritma nonblocking. Algoritma nonblocking digunakan untuk penjadwalan proses dan utas di sistem operasi dan level mesin virtual Java.
Techopedia menjelaskan Atomic
Semua kelas paket java.util.concurrent.atomic memiliki awalan "atom" dalam namanya. Ada berbagai jenis variabel atom yang tersedia di paket java.util.concurrent.atomic, termasuk:
- AtomicBoolean
- AtomicInteger
- AtomicIntegerArray
- AtomicIntegerFieldUpdater
- AtomicLong
- AtomicLongArray
- AtomicLongFieldUpdater
- Referensi Atom
Contohnya adalah skenario di mana utas A memegang kunci. A hanya dapat mengakses dan membuat perubahan pada variabel yang dilindungi oleh kunci ini. Jika utas B memegang kunci ini setelah A, maka hanya B yang dapat melihat perubahan A pada variabel yang dilindungi oleh kunci tertentu. Masalah utama dengan penguncian terjadi ketika B mencoba untuk mendapatkan kunci yang dipegang oleh A. Dalam hal ini, B diblokir untuk menunggu sampai kunci tersedia. Algoritma nonblocking menyelesaikan masalah ini.
Tujuan utama di balik pembuatan kelas atom adalah untuk mengimplementasikan struktur data nonblocking dan kelas infrastruktur terkait. Kelas atom tidak berfungsi sebagai pengganti untuk java.lang.Integer dan kelas terkait. Kebanyakan kelas paket java.util.concurrent menggunakan variabel atom alih-alih sinkronisasi, baik secara langsung maupun tidak langsung. Variabel atom juga digunakan untuk mencapai throughput yang lebih tinggi, yang berarti kinerja server aplikasi yang lebih tinggi.