Представьте ситуацию, когда несколько процессов пытаются использовать общий ресурс.Что-то о критических разделах
Вы можете защитить его, используя монитор java (например, синхронизированные методы).
Но что делать, если ваши классы должны подчиняться этому протоколу?
метод запрос - критический раздел - метод конечного
Любого процесса является единственным одновременным выполнением запроса и конечных методов, благодаря синхронизированным блокам, но что ядро критической секции?
Использование других конструкций, таких как Семафоры или Блокировка/Условие, вы можете сделать это легко, но с помощью собственного монитора вы связаны с тем, что синхронизация идентифицируется блоком, который не может пересекать несколько методов.
Если вы используете boolean
, который сообщает вам, занят ли ресурс (сразу после вызова wait()
) или нет, может возникнуть взаимоблокировка!
Итак, что может быть хорошим решением для этого?
Вы определенно должны выглядеть разделить на это на две отдельные вопросы вместо этого. Вы можете задать один вопрос здесь, чтобы спросить, и оставить другого на несколько позже. – Makoto
Вы можете даже отправить другой в одно и то же время. –
Сделайте что-нибудь -> вызовите синхронный метод для вашего критического раздела -> Сделайте материал – user2677821