Задание #4: Фабрика
Постановка задачи
Реализовать приложение, эммулирующее работу фабрику по сборке изделений.
Требования
Основные участники процесса: поставщики деталей, сборщики изделий,
склад(ы) готовых изделий, склад(ы) деталей.
Каждый сборщик и поставщик должен работать в отдельном потоке.
Для синхронизации и ожидания событий необходимо использовать
мониторы синхронизации (notify(), notifyAll(), wait()). Наличие процедуры ожидания в
виде цикла автоматически ведет к непринятию задания.
Каждое изделие или детать - это отдельный объект. Хранить просто количество
изделий/деталей нельзя - необходимо хранить непосредственно объекты.
Варианты усложнения:
- Составные детали. Некоторые изделия могут участвовать и как детали для другого изделия.
- Менежер поставок. Только один поток просыпается при поступлении необходимой
детали на склад - тот который первые ее потребовал
- Менежер складов. Изделения/детали хранятся не в одном складе, а в наборе складов.
Принятие решения о направлении детели/изделеия на конкретный склад принимается по
анализу рагрузки складов.