Java RMI и вопросы синхронизации потоков

На самом деле у меня есть два вопроса о Java RMI и синхронизации потоков:

1) Если я реализую свои удаленные методы RMI как синхронизированные, гарантированно ли они будут взаимоисключающими? Мне нужно убедиться, что ни один из моих методов RMI (методов, предлагаемых клиентам) не выполняется одновременно.

2) У меня есть метод, который сервер выполняет периодически. Он используется для очистки. Я должен убедиться, что этот конкретный метод не выполняется, когда какой-либо метод RMI запускается / используется удаленными клиентами. Кроме того, когда этот метод работает, вызовы RMI не должны быть возможными. То есть Клиенты должны ждать. Есть идеи, как я могу это сделать? Я читал о замках, но я не знаю, как использовать их в этом сценарии.

Я рассматривал реализацию методов RMI как статических и включение этого метода очистки в интерфейс RMI, но, похоже, это не элегантный способ решения проблемы.

Я также написал метод очистки внутри интерфейса RMI как синхронизированный. Когда я запускал его для тестирования, между методами не было конфликтов, но я не уверен.

Спасибо за ваше время и ответы.

Ответы на вопрос(4)

Ваш ответ на вопрос