รอ () - เธรดเผยแพร่ความเป็นเจ้าของของมอนิเตอร์นี้และรอจนกว่าเธรดอื่นจะแจ้งเธรดที่รอมอนิเตอร์ของอ็อบเจ็กต์นี้เพื่อปลุกขึ้นผ่านการเรียกเมธอด notify() หรือเมธอด notifyAll() จากนั้นเธรดจะรอจนกว่าจะได้สิทธิ์การเป็นเจ้าของจอภาพอีกครั้งและดำเนินการดำเนินการต่อไป
นอนหลับ () - เมธอดนี้ทำให้เธรดที่กำลังดำเนินการอยู่ในโหมดสลีป (หยุดการทำงานชั่วคราว) ตามจำนวนมิลลิวินาทีที่ระบุ เธรดไม่สูญเสียการเป็นเจ้าของจอภาพใดๆ โดยจะส่งเธรดปัจจุบันไปยังสถานะ "ไม่สามารถใช้งานได้" ตามระยะเวลาที่กำหนด
ซีเนียร์ เลขที่ | คีย์ | รอ | นอน |
---|---|---|---|
1 | Class | Wait() วิธีการเป็นของ Object class | Sleep() วิธีการเป็นของเธรด class |
2 | ล็อกการปลดล็อก | Wait() ปลดล็อควัตถุ | ไม่ปลดล็อควัตถุ |
3 | การเรียกบริบท | Wait() สามารถเรียกบนวัตถุเองได้ | Sleep() สามารถเรียกบน thread |
4. | เงื่อนไขการปลุก | จนกว่าจะโทรแจ้ง (), notifyAll() จาก object | อย่างน้อยก็หมดเวลาหรือโทรขัดจังหวะ |
5 | การปลุกที่หลอกลวง | โปรแกรมสามารถปลุกให้ตื่นได้ | จะไม่มีการปลุกแบบหลอกๆ |
ตัวอย่าง SynchronizedMap
synchronized(lockedObject){ while(condition == true){ lockedObject.wait() //releases lockedObject lock } Thread.sleep(100); //puts current thread on Sleep }