Skip to content

M10 · Bab 1± 45 menitDraf AI

Thread dan Race Condition

Tujuan belajar

  • Membedakan proses dan thread, serta memahami model thread-per-request di server
  • Membuat thread dengan Runnable, new Thread, dan Thread.ofPlatform(), lalu menunggunya dengan join
  • Menjelaskan beda start() dan run(), serta menghentikan thread dengan rapi lewat interrupt
  • Mengenali race condition pada count++ dan masalah visibility yang diatasi volatile
  • Menilai thread safety bean singleton di Spring

Prasyarat: Proyek Mini: API Pesanan yang Aman

Kuis

5 soal · lulus bila minimal 70% benar

1.Apa output kode ini? Thread t = new Thread(() -> System.out.println(Thread.currentThread().getName()), "worker-1"); t.run();
2.Dua thread masing-masing menjalankan count++ sebanyak 1.000.000 kali pada field static int count, lalu main mencetak count setelah join keduanya. Apa yang paling mungkin terjadi?
3.Sebuah worker berhenti saat flag boolean running di-set false oleh thread lain. Di server production, worker kadang tidak pernah berhenti. Perbaikan minimal yang tepat?
4.Sebuah @Service Spring menyimpan private BigDecimal lastTotal; yang diisi di method checkout() lalu dibaca lagi di method yang sama. Di load test, sebagian pelanggan menerima total milik orang lain. Penyebab paling mungkin?
5.Di dalam loop worker, kamu menulis catch (InterruptedException e) { } kosong. Apa akibatnya?

Jawab semua soal dulu (0/5)