Conversation
There was a problem hiding this comment.
Расскажите, пожалуйста, почему вы выбрали именно такую структуру? Как у вас дела с условием, что все накормлены примерно одинаково?
There was a problem hiding this comment.
Изначально идея была в том, что официант может принести только одно блюдо одному разработчику, поэтому я использовал SynchronousQueue для асинхронной передачи еды из общего пула разработчикам.
Но столкнулся с проблемой, что программисты получали еду по двум очередям, из-за чего возникала ошибка с выполнением условия, увидел ее при рандомизации времени поедания и обсуждения.
Перевёл обоих официантов на одну общую очередь кухни.
There was a problem hiding this comment.
Понимаю, что это всего лишь лаба, но предлагаю сделать человеческую конфигурацию, которую можно менять без рекомпила
There was a problem hiding this comment.
Предлагаю избавиться от всех while true в коде, вроде тут без них вполне можно обойтись
There was a problem hiding this comment.
На очной демонстрации расскажите пж, почему вы выбрали именно такой тред пул. Стоит провести эксперименты и замерить, как разные тредпулы себя ведут и как объясняется их поведения
There was a problem hiding this comment.
Замеры сделал:
FIXED = 39727 ms
WORK_STEALING = 40627 ms
CACHED = 42535
SINGLE = не исполнился
There was a problem hiding this comment.
забыл сразу сказать -- сделайте пж время поедания случайным, так интереснее
Усложненная задача об обедающих философах