2017-01-22 6 views
0

Я смущен в одной точке с помощью метода уведомления. "notify(): он пробуждает один единственный поток, который вызывает wait() на том же объекте." Поэтому давайте скажем, что два потока называются wait для одного и того же объекта. Итак, когда я вызываю уведомление о том, какой поток будет уведомлен?метод уведомления для двух ожидающих потоков

+0

Возможный дубликат [Java: notify() vs. notifyAll() снова) (http://stackoverflow.com/questions/37026/java-notify-vs-notifyall-all-over-again) – ravthiru

ответ

1

Вы не можете знать, о чём будет сообщено. Spec говорит:

public final void notify()

Просыпается один поток, ожидающий на мониторе этого объекта. Если на этом объекте ждут какие-либо потоки, один из них выбран для пробуждения. Выбор произволен и происходит по усмотрению реализации.