состояние гонки в RMI Java - 2 клиент 1 сервер - PullRequest
1 голос
/ 19 августа 2009

У меня есть два клиента в двух разных процессах, которые взаимодействуют через RMI с сервером.

мой вопрос: Что произойдет, если оба клиента вызовут заглушку сервера одновременно?

спасибо за ваше время, мне

Ответы [ 2 ]

3 голосов
/ 19 августа 2009

Этот учебник демонстрирует многопоточность серверов RMI (см. Задачу 7.1). Они цитируют из спецификации RMI:

Метод, отправляемый средой выполнения RMI к реализации удаленного объекта ( сервер) может или не может выполняться в отдельная тема. Звонки исходящие от разных клиентов Virtual Станки будут выполнять в разных потоки. С той же клиентской машины не гарантируется, что каждый метод будет работать в отдельном потоке

поэтому вызовы от разных клиентов приведут к выполнению через разные потоки на сервере.

1 голос
/ 19 августа 2009

Ничего плохого по умолчанию - это точно так же, как вызов метода для любого другого объекта из двух потоков одновременно. Модель «1 сервер для многих клиентов» - это то, для чего предназначены сетевые протоколы, такие как RMI.

Доступ к любым общим данным на сервере должен регулироваться синхронизированными блоками, если это необходимо. Это зависит от того, что делает сервер.

...