Я нашел другой сценарий проблемы производителя / потребителя, который необходимо синхронизировать.
Позвольте мне описать сценарий:
- В отеле есть М номеров
- Каждая комната может быть зарезервирована до 4 человек
- Клиенты могут прийти в группу
- Если приезжает группа из более чем 4 клиентов, может потребоваться несколько комнат
- Если свободных мест недостаточно, вся группа покинет отель.
- Если все номера заполнены, отель не примет ни одного клиента.
Я пытаюсь решить эту проблему с семафорами, но эта группа людей меня смущает. У меня есть только несколько набросков, но нет псевдокода, простите меня за это.
Как я могу обрабатывать группу людей с помощью семафоров?