我继承了一个巨大的Java J2EE应用程序(Java 1.8,Tomcat 8)。登录需要30秒-主要是由于对各种服务进行了多个顺序的AJAX调用(从Java服务器而不是JavaScript)。特别是其中一个要花10秒钟以上才能返回。
我直到最后都不需要那个结果-因此我可以在开始时初始化AJAX调用,做其他事情,然后同步并在最后使用结果。
我从未使用过Java多线程,但这似乎是实现这一目标的一种方法。但是不想等待AJAX调用的结果似乎是一个常见的用例。是否有任何工具/库/惯例?
这个类还有很多其他方法-我不(想)我想让整个类“ Runnable”-我会做几个内部类-“ waiter&notifier”,还是?抱歉,从来没有在Java中使用线程并试图弄清楚从哪里开始。...
谢谢...
答案 0 :(得分:0)
好吧,对于其他有此问题的人,经过一番研究,我用例的解决方案非常简单。
1)我制作了一个实现“ Runnable”的内部类。因此,它可以访问封闭类的所有属性。在内部类的“运行”方法中,我进行了AJAX调用。
2)在顶部的原始方法中,我实例化并启动了内部类线程:
Thread gml = new Thread(new GetModuleList());
gml.start();
3)是否所有其他不依赖于gml的回报的东西...
4)当我需要它时,我只是执行了“ gml.join()”。
似乎工作正常,并且没有我最初担心的那么复杂。内部类对我来说是个窍门-只要我的主线程一直保持工作线程设置的属性,直到连接之后,我就负责所有线程数据共享。