RMI - я правильно понял? - PullRequest
       4

RMI - я правильно понял?

0 голосов
/ 17 января 2011

Может ли кто-нибудь проверить, правильно ли я понимаю Java RMI?

Если бы у меня было:

public class Server extends UnicastRemoteObject 
{
    public Server() throws RemoteException
    {
        super();
        if (System.getSecurityManager() == null)
        {
            System.setSecurityManager(new RMISecurityManager());
        }
        try
        {
            Naming.rebind("rmi://someAddress/someName" , this);
        }
        catch (MalformedURLException ex)
        {
        }
        catch (ConnectException ex)
        {
        }

/* do sometnig else there */
   }
}

, это означало бы, что если 100 клиентов подключатся, RMI создаст 100 копий этого сервера кактемы для облегчения этих клиентов (без моего дальнейшего вмешательства)?

Ответы [ 2 ]

1 голос
/ 17 января 2011

Нет, если подключено 100 клиентов, реестр RMI будет управлять несколькими отдельными потоками, которые все будут выполняться в этом единственном экземпляре вашего Server класса.

Скорее всего, новый поток будет создан для каждого клиентского подключения, возможно, несколько потоков, но новый экземпляр Server никогда не будет создан.

0 голосов
/ 27 июля 2015

будет ли это означать, что если 100 клиентов подключатся, RMI создаст 100 копий этого сервера в виде потоков для облегчения этих клиентов (без моего дальнейшего вмешательства)?

Нет такой вещи, как «создать 100 копий этого сервера в виде потоков». Вы создаете любые экземпляры сервера, а RMI создает столько потоков, сколько нужно для вызова методов вашего сервера. Любая синхронизация, необходимая на вашем сервере, зависит от вас.

...