服务器未运行时,Java RMI非常慢

时间:2016-10-25 12:37:59

标签: java javafx rmi

我有一个GUI,它使用RMI来获取必须可视化的数据。我正在使用AnimationTimer进行服务器查询,因此在最坏的情况下,它可能是60次/秒。当服务器运行时,一切都很完美。 但是,如果我在没有服务器启动的情况下运行客户端,整个GUI变得非常慢。似乎创建连接的尝试是阻止其他一切的问题。但我不知道如何解决它。

我不理解的另一个问题是:当我通过“x”关闭服务器应用程序的菜单栏时,仍然有一些正在运行的东西。我必须第二次取消该程序(在Netbeans工具栏中)以完全关闭它。

以下是在客户端运行的代码。 getAllSignals() - 方法由AnimationTimer调用:

public static RMI rmiConnect() {
       try{
           Registry reg = LocateRegistry.getRegistry("127.0.0.1", 1099);
           RMI rmi = (RMI) reg.lookup("server");
           return rmi;
       } catch(RemoteException | NotBoundException e){
           System.out.println(e);
           return null;
       }
    }

     public static Map<String, double> getAllSignals() throws RemoteException, IOException {
     try {
          RMI rmi = rmiConnect();
          Map<String, double> signals = rmi.getAllSignals();
          return (Map<String, double>) signals;
      } catch (Exception ex) {
          ExceptionsHandling exception = new ExceptionsHandling();
          Map<String, double> list = exception.failedSignalsQuery();
          return list;
      }
 }

0 个答案:

没有答案