Я пытаюсь использовать мониторы для проблемы синхронизации следующим образом:
- At most M many customers are expected to come.
- There are 4 equal barbers ready to service.
- Customers have a priority number based on their ages. The older person, the higher priority.
- Barbers service customers based on their priority.
- If all barbers are busy, customers are made to wait.
Когда приходит клиент. Он / она вызывает функцию request_barber(int priority)
. Когда клиент закончил, он / она вызывает release_barber()
function
- Предположим, что есть функция
sort()
, которая принимает целочисленный массив и сортирует его.
My Вопрос в том, как я могу расставить приоритеты, чтобы клиент с более высоким приоритетом мог использовать ресурсы парикмахера? Я не могу найти ничего о приоритетах в мониторах. Итак, я застрял.
Насколько я могу думать, создайте int customers[M]
, который хранит возраст клиентов, чтобы мы могли его отсортировать. Однако я не знаю, как их распределить.