Kutipan dari Inside the Java Virtual Machine
Sebuah utas di mesin virtual Java meminta kunci saat tiba di awal wilayah monitor. Di Jawa, ada dua jenis wilayah monitor: pernyataan tersinkronisasi dan metode tersinkronisasi.
Pantau
Monitor seperti sebuah bangunan yang berisi satu ruangan khusus yang hanya dapat ditempati oleh satu thread pada satu waktu. Ruangan biasanya berisi beberapa data. Sejak utas memasuki ruangan ini hingga keluar, utas memiliki akses eksklusif ke data apa pun di dalam ruangan. Memasuki gedung monitor disebut "memasuki monitor". Memasuki ruangan khusus di dalam gedung disebut "memperoleh monitor". Menempati ruangan disebut "memiliki monitor", dan meninggalkan ruangan disebut "melepaskan monitor". Meninggalkan seluruh gedung disebut "keluar dari monitor".
Selain dikaitkan dengan sedikit data, monitor dikaitkan dengan satu atau lebih bit kode, yang dalam buku ini disebut wilayah monitor.
Seperti disebutkan sebelumnya, bahasa ini menyediakan dua cara bawaan untuk mengidentifikasi wilayah monitor di program Anda: pernyataan tersinkronisasi dan metode tersinkronisasi. Kedua mekanisme ini, yang mengimplementasikan aspek pengecualian timbal balik dari sinkronisasi, didukung oleh set instruksi mesin virtual Java.
Mengunci
Untuk mengimplementasikan kapabilitas pengecualian timbal balik dari monitor, mesin virtual Java mengaitkan kunci (kadang disebut mutex) dengan setiap objek dan kelas. Kunci adalah seperti hak istimewa yang hanya dapat "dimiliki" satu utas pada satu waktu.
Untaian tunggal diizinkan untuk mengunci objek yang sama beberapa kali. Untuk setiap objek, mesin virtual Java menghitung berapa kali objek telah dikunci. Objek yang tidak terkunci memiliki hitungan nol. Saat utas memperoleh kunci untuk pertama kalinya, hitungannya lagi bertambah menjadi satu. Setiap kali utas mendapatkan kunci pada objek yang sama, hitungannya bertambah lagi.