Skip to content

JavaLabs2025/java-concurrency-xGodness

 
 

Repository files navigation

Review Assignment Due Date

Java concurrency

Цели и задачи л/р:

Задача об обедающих философах:

Рассмотрим семь программистов, сидящих вокруг круглого стола для обеда. У каждого программиста есть тарелка супа перед ним, а между каждой парой программистов находится ложка. Однако, чтобы поесть суп, программисту необходимо взять две ложки - справа и слева (он очень голодный). Когда программист поедает суп, ложки остаются занятыми и не могут быть использованы соседними программистами. Программисты чередуют прием еды с обсуждением преподавателей. Когда суп заканчивается, программист просит одного из двух официантов принести ему еще одну порцию (то есть тарелка супа ограничена). Всего в ресторане есть 1_000_000 порций еды, после чего обед заканчивается. Все программисты должны поесть +- одинаково, чтобы никому не было обидно

Ваша задача - реализовать симуляцию обеда с использованием языка программирования Java и многопоточности. Каждый программист должен быть представлен в виде потока, а ложки - в виде общих ресурсов, которые программисты могут захватывать и освобождать. Также не забудьте про официантов и запасы еды.

Дополнительное условие -- количество программистов, еды и официантов должно быть параметризируемое.

Это усложнение классической задачи, про которую можно почитать тут

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

Обязательное условие:

  • Использование системы сборки Gradle
  • Код должен быть отлажен и протестирован

Дедлайн 08.10.2025 23:59

About

advanced-java-2025-java-concurrency-concurrency-lab1 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%