Chờ () - Luồng giải phóng quyền sở hữu màn hình này và đợi cho đến khi một luồng khác thông báo các luồng đang chờ trên màn hình của đối tượng này thức dậy thông qua một cuộc gọi đến phương thức thông báo () hoặc phương thứctifyAll (). Sau đó, chuỗi sẽ đợi cho đến khi nó có thể lấy lại quyền sở hữu màn hình và tiếp tục thực thi.
Ngủ () - Phương thức này khiến luồng hiện đang thực thi ở trạng thái ngủ (tạm thời ngừng thực thi) trong số mili giây đã chỉ định. Chủ đề không mất quyền sở hữu bất kỳ màn hình nào. Nó gửi luồng hiện tại sang trạng thái “Không chạy được” trong một khoảng thời gian nhất định.
Sr. Không. | Phím | Chờ | Ngủ |
---|---|---|---|
1 | Lớp | Phương thức Wait () thuộc lớp Đối tượng | Phương thức Sleep () thuộc lớp Thread |
2 | Bản phát hành khóa | Wait () giải phóng khóa trên một đối tượng | Nó không mở khóa trên một đối tượng |
3 | Ngữ cảnh cuộc gọi | Wait () có thể được gọi trên chính đối tượng | Sleep () có thể được gọi trên chuỗi |
4. | Tình trạng đánh thức | cho đến khi cuộc gọi thông báo (), thông báoAll () từ đối tượng | cho đến khi hết thời gian ít nhất hoặc cuộc gọi bị gián đoạn |
5 | đánh thức giả | Chương trình có thể nhận được đánh thức giả | Nó sẽ không nhận được đánh thức giả. |
Ví dụ về Bản đồ đồng bộ hóa
synchronized(lockedObject){ while(condition == true){ lockedObject.wait() //releases lockedObject lock } Thread.sleep(100); //puts current thread on Sleep }