Может уведомлять, просыпаться один и тот же поток несколько раз?

Представьте, что у вас есть типичный шаблон производитель-потребитель в Java. Чтобы быть немного более эффективным, вы хотите использоватьnotify() и неnotifyAll() когда новый элемент добавляется в очередь. Если два потока производителя вызывают notify, гарантируется ли, что будут пробуждены два различных ожидающих потока потребителя? Или это может быть что дваnotify()s запускаются вскоре после того, как один и тот же потребительский поток ставится в очередь для пробуждения дважды? Я не могу найти раздел API, описывающий, как именно это работает. Есть ли в Java некоторая атомарная внутренняя операция для пробуждения потоков ровно один раз?

Если только один потребитель ожидает, тогда второе уведомление будет потеряно, это не проблема.

Ответы на вопрос(4)

Ваш ответ на вопрос