Домашняя работа, Java, Предотвращение тупиковой ситуации при использовании notify() вместо notifyAll() в модели multiProducer/singleConsumer

Поэтому я работаю над этим отчетом, и последним заданием является создание модели производителя / потребителя с n Продюсеры и один потребитель, хитрость в том, что мне нужно заставить его работать notify() вместо notifyAll() в пут и получить методы.

Я полагаю, что просто оставить все как есть в методе get не проблема, так как есть только один потребитель, но мне сложно понять, как убедиться, что notify() в методе put вызывается только потребительский поток, вместо того, чтобы разбудить другого производителя и вызвать тупик.

1 ответ

Вы не можете решить, кто проснется. Вот почему вам нужна дополнительная логика, поэтому, если будет уведомлен не тот поток, он будет знать, что он не должен работать, и notify() другой поток (и повторноwait() сам).

Другие вопросы по тегам