Program paralel di Java: thread, sinkronisasi, lock, executor, CompletableFuture, virtual threads, hingga structured concurrency.

# Proses vs Thread

Bedakan proses dan thread beserta implikasi memori dan komunikasinya.

Buka →
# Membuat Thread

Ciptakan dan jalankan thread dengan subclass Thread maupun Runnable.

Buka →
# Runnable dan Callable

Bandingkan dua kontrak eksekusi dan hasil yang dapat dikembalikan.

Buka →
# Thread Lifecycle

Ikuti state thread dari NEW hingga TERMINATED dan transisinya.

Buka →
# Thread Priority dan Daemon

Atur prioritas dan mode daemon beserta batas kendali nyatanya.

Buka →
# Race Conditions

Amati kesalahan akibat akses bersama tanpa koordinasi dan cara mereproduksinya.

Buka →
# synchronized

Lindungi critical section dengan method dan blok synchronized.

Buka →
# Intrinsic Locks

Pahami lock bawaan setiap objek dan sifat reentrannya.

Buka →
# volatile

Jamin visibilitas perubahan antar thread dengan volatile dan batasnya.

Buka →
# Atomic Variables

Lakukan operasi gabungan tanpa lock dengan class Atomic.

Buka →
# Lock dan ReentrantLock

Gunakan lock eksplisit dengan fitur tryLock, fairness, dan interruptible.

Buka →
# ReadWriteLock

Izinkan pembaca bersamaan dengan ReadWriteLock dan tulis eksklusif.

Buka →
# Deadlock

Pahami terbentuknya deadlock, cara mendeteksi, dan mencegahnya.

Buka →
# Livelock dan Starvation

Kenali dua masalah koordinasi lain selain deadlock dan mitigasinya.

Buka →
# wait, notify, dan notifyAll

Koordinasi antar thread dengan wait/notify pada intrinsic lock.

Buka →
# ExecutorService

Serahkan pengelolaan thread ke ExecutorService dan shut down dengan benar.

Buka →
# Thread Pools

Pilih ukuran dan jenis pool sesuai sifat pekerjaan aplikasi.

Buka →
# Future dan CompletableFuture

Ambil hasil asinkron dan rangkai tahapan dengan CompletableFuture.

Buka →
# Concurrent Collections

Gunakan collection thread-safe seperti ConcurrentHashMap dan CopyOnWriteArrayList.

Buka →
# Fork/Join Framework

Pecah pekerjaan rekursif dan gabungkan hasilnya dengan work stealing.

Buka →
# Parallel Streams dan Concurrency

Pahami hubungan parallel stream dengan ForkJoinPool dan kesalahpakaiannya.

Buka →
# Virtual Threads

Skalakan jutaan task ringan dengan virtual threads Java modern.

Buka →
# Structured Concurrency

Padatkan lifecycle task bersaudara dengan pola structured concurrency.

Buka →
# Thread Safety

Kenali sumber bahaya visibility dan atomicity beserta resep amannya.

Buka →
# Best Practices Concurrency

Rangkai prinsip desain concurrency yang sederhana dan dapat diuji.

Buka →