【发布时间】:2013-01-31 09:59:35
【问题描述】:
我有一个 Vaadin 应用程序,我正在实现一些异步后台处理。据我所知,来自客户端的所有请求都由 Tomcat 线程池中的一个线程处理,在处理请求后,响应(更新的应用程序状态)将返回给客户端并呈现。
因为我有一些想要在后台执行的任务,我需要在主 HTTP 线程中显示一个“正在加载...”标签,在它显示后我需要启动一个后台线程来执行任务以及何时执行完成后,应用程序的状态被推送到客户端(使用 ICEPush 插件)。
问题是在我看来,有时后台线程在主 HTTP 线程返回响应给客户端之前完成,因此没有显示“正在加载...”标签,有时应用程序的状态没有完全更新客户因此。因此,我需要在主 HTTP 线程返回响应后启动后台线程。
有没有办法做到这一点?还是我对这种方法完全错误?
谢谢!
【问题讨论】:
-
听起来您应该为后台线程快速完成做好准备,而不是依赖它花费更多时间。 . .更新 UI 代码。
标签: java multithreading tomcat vaadin server-push