2013-05-06 2 views
1

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

Я хочу знать, как уведомлять об этом. На многих сайтах, которые я читал, он посылает сигнал, но что здесь означает сигнал?

Уведомляет об отправке сигнала непосредственно первому ожидающему потоку или отправляет сигнал планировщику потоков?

ответ

7

Он не отправляет его в первую очередь, но до любой ожидающий поток (но только один поток).

Вы должны прочитать the javadoc more carefully.

Сигнал также, возможно, плохое имя для него, «оповещать» лучше. Фактическая реализация механизма прозрачна для Java-программиста, и техническая реализация не должна быть необходимой для вас знать .... если вы не заинтересованы в внутренних компонентах Java, а затем я предлагаю вам проверить исходный код OpenJDK.

+0

Извините мою ошибку, я перепутал информацию о javadoc и других сайтах. Я редактирую вопрос. –

+1

Опять же, вы должны внимательно прочитать Javadoc. Не упоминается «сигнал», и это ясно указывает: «Если на этом объекте ждут какие-то нити, один из них выбран для пробуждения. Выбор произволен и происходит по усмотрению реализации. « – rolfl

+0

Спасибо, что освободил мои сомнения. –