อ้างจากInside the Java Virtual Machine
เธรดในเครื่องเสมือน Java ร้องขอการล็อกเมื่อมาถึงจุดเริ่มต้นของขอบเขตมอนิเตอร์ ใน Java มีขอบเขตการมอนิเตอร์สองประเภท: คำสั่งที่ซิงโครไนซ์และวิธีการซิงโครไนซ์
ตรวจสอบ
จอภาพเปรียบเสมือนสิ่งปลูกสร้างที่มีห้องพิเศษหนึ่งห้องที่สามารถใช้งานได้ทีละเธรด ห้องนี้มักจะมีข้อมูลบางส่วน ตั้งแต่เวลาที่เธรดเข้ามาในห้องนี้จนถึงเวลาที่ออกไปเธรดจะสามารถเข้าถึงข้อมูลใด ๆ ในห้องได้โดยเฉพาะ การเข้าสู่อาคารมอนิเตอร์เรียกว่า "การเข้าสู่จอภาพ" การเข้าไปในห้องพิเศษภายในอาคารเรียกว่า "การรับจอภาพ" การครอบครองห้องนั้นเรียกว่า "การเป็นเจ้าของจอภาพ" และการออกจากห้องนั้นเรียกว่า "การปล่อยจอภาพ" การออกจากอาคารทั้งหมดเรียกว่า "ออกจากจอภาพ"
นอกเหนือจากการเชื่อมโยงกับบิตของข้อมูลแล้วจอภาพยังเชื่อมโยงกับโค้ดอย่างน้อยหนึ่งบิตซึ่งในหนังสือเล่มนี้จะเรียกว่าพื้นที่มอนิเตอร์
ดังที่ได้กล่าวไว้ก่อนหน้านี้ภาษามีสองวิธีในตัวในการระบุขอบเขตการมอนิเตอร์ในโปรแกรมของคุณ: คำสั่งที่ซิงโครไนซ์และวิธีการซิงโครไนซ์ กลไกทั้งสองนี้ซึ่งใช้ลักษณะการยกเว้นร่วมกันของการซิงโครไนซ์ได้รับการสนับสนุนโดยชุดคำสั่งของเครื่องเสมือน Java
ล็อค
ในการใช้ความสามารถในการยกเว้นร่วมกันของจอภาพเครื่องเสมือน Java จะเชื่อมโยงการล็อก (บางครั้งเรียกว่า mutex) กับแต่ละอ็อบเจ็กต์และคลาส การล็อกเป็นเหมือนสิทธิพิเศษที่เธรดเดียวเท่านั้นที่สามารถ "เป็นเจ้าของ" ได้ในคราวเดียว
เธรดเดียวได้รับอนุญาตให้ล็อกอ็อบเจ็กต์เดียวกันหลายครั้ง สำหรับแต่ละอ็อบเจ็กต์ Java virtual machine จะรักษาจำนวนครั้งที่อ็อบเจ็กต์ถูกล็อก วัตถุที่ปลดล็อคมีจำนวนศูนย์ เมื่อเธรดได้รับการล็อกเป็นครั้งแรกจำนวนจะเพิ่มขึ้นเป็นหนึ่งอีกครั้ง ทุกครั้งที่เธรดได้รับการล็อกบนวัตถุเดียวกันจำนวนจะเพิ่มขึ้นอีกครั้ง