Skip to content

M10 · Bab 4± 45 menitDraf AI

Virtual Threads

Tujuan belajar

  • Membedakan platform thread dan virtual thread serta kapan masing-masing menguntungkan
  • Membuat virtual thread dengan Thread.ofVirtual() dan Executors.newVirtualThreadPerTaskExecutor()
  • Memahami pinning, perbaikan synchronized di Java 24 (JEP 491), dan pengganti ThreadLocal berupa ScopedValue
  • Mengaktifkan virtual thread di Spring Boot dengan spring.threads.virtual.enabled=true dan membatasi akses ke sumber daya terbatas

Prasyarat: ExecutorService dan CompletableFuture

Kuis

5 soal · lulus bila minimal 70% benar

1.10.000 tugas yang masing-masing Thread.sleep(100 ms) dijalankan di newFixedThreadPool(200) lalu di newVirtualThreadPerTaskExecutor(). Hasil yang paling mungkin?
2.Layanan laporan menghitung hash kriptografis berat (CPU-bound) untuk jutaan baris. Apakah mengganti ke virtual thread akan mempercepatnya?
3.Apa output Thread.ofVirtual().start(() -> System.out.println(Thread.currentThread().isDaemon())).join();?
4.Setelah spring.threads.virtual.enabled=true, aplikasi menerima 5.000 request bersamaan, tetapi banyak request gagal dengan timeout saat mengambil koneksi database. Penyebab paling mungkin?
5.Di Java 25, cara mana yang paling tepat untuk meneruskan ID request ke kode yang dipanggil di dalam satu request tanpa menambah parameter di setiap method?

Jawab semua soal dulu (0/5)