В настоящее время я посещаю курс параллельного программирования в моем университете, и недавно мы начали говорить о концепции монитора. Хотя я понимаю необходимость взаимного исключения, я не понимаю, почему я бы использовал для этого монитор.
Насколько я понимаю, монитор гарантирует, что в критическом разделе всегда находится ровно один процесс или нет. Мы можем добиться именно этого с помощью семафора. Кроме того, мы реализуем мониторы (или хотя бы одну возможность их реализации) с семафорами.
Так зачем мне реализовывать то, что делает то же самое, что семафор с семафором? Какие преимущества я получу?