Java Очередь блокировок, почему мы ставим notifyall в очередь с условием, если queue.size == 0? - PullRequest
0 голосов
/ 09 января 2020

Вот простая реализация:

  public synchronized void enqueue(Object item)throws InterruptedException  {
while(this.queue.size() == this.limit) {
  wait();
}
if(this.queue.size() == 0) {
  notifyAll();
}
this.queue.add(item);}

1 Ответ

1 голос
/ 09 января 2020

Потому что, если вы посмотрите на типичную очередь, она выглядит так

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...