Tôi đã học được rằng việc gọi phương thức wait()
của đối tượng sẽ giải phóng màn hình đối tượng, nếu có.java: wait(), thông báo() và khối đồng bộ
Nhưng tôi có một số câu hỏi liên quan đến gọi notify()
trên đối tượng này bằng một thread:
(khi nào) sẽ thread chờ đợi thức dậy, nếu khác (một thứ 3) chủ đề sở hữu màn hình đối tượng trong khi đó ?
chủ đề chờ đợi sẽ thức dậy, nếu chuỗi thứ ba có tên là
wait()
trên đối tượng này?là nó có thể để xác định xem một thread đang chờ đợi thông báo một đối tượng cụ thể (java 1.4/java 5)
gì đang xảy ra nếu
wait()
sẽ được gọi trong phương phápfinalize()
?
1. "wait() phải được gọi trong khối đồng bộ" là sai. Nhưng nó nên. 2. Có bạn đã đúng. 3. Tôi nghĩ Chris Denett ở ngay đây. Thread.holdsLock() âm thanh tốt. 4. Đó là một câu hỏi lý thuyết để hiểu các khái niệm. – MRalwasser
@MRalwasser: Không đồng ý, phải không. Có một cái nhìn ở đây: http://stackoverflow.com/questions/2779484/why-must-wait-always-be-in-synchronized-block/ – Marcus