RMI - 在服务器上创建线程以服务客户端

时间:2011-01-07 23:05:00

标签: java multithreading rmi

我正在使用rmi开发一个应用程序,允许客户端登录,执行某些任务并注销。我知道每个客户端在服务器上调用方法时都被视为一个线程,但是,所有客户端的线程都调用在服务器上创建的同一个对象。所以现在,我想为每个客户端登录成功,创建一个新线程(并且一个新对象,仅由一个客户端使用,也被绑定),一个线程在客户端注销时终止。因此,每个客户端都有自己的服务器对象。

非常感谢。

干杯

1 个答案:

答案 0 :(得分:2)

  

我知道每个客户都会被考虑   当它调用方法时作为一个线程   服务器

这不正确。客户端和服务器线程之间的关系在RMI中是未定义的。

在任何情况下,每个客户端都不需要一个线程。每个客户端需要一个远程对象。这是会话模式的工作:

public interface Login extends Remote
{
  Session login(String credentials) throws RemoteException;
}

public interface Session extends Remote
{
  // Your API here
}

让您的Login实现对象为每个客户端返回一个新的Session实现对象。