作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Vaadin 应用程序,我正在实现一些异步后台处理。据我所知,来自客户端的所有请求都由 Tomcat 线程池中的一个线程处理,并且在处理请求后,响应(更新的应用程序状态)返回给客户端并呈现。
因为我有一些任务想在后台执行,所以我需要在主 HTTP 线程中显示“正在加载...”标签,显示后我需要启动一个后台线程来执行任务以及何时它完成后,应用程序的状态被推送到客户端(使用 ICEPush 插件)。
问题是,在我看来,有时后台线程会在主 HTTP 线程将响应返回给客户端之前完成,因此不会显示“正在加载...”标签,有时应用程序的状态不会完全更新客户因此。因此,我需要在主 HTTP 线程返回响应后启动后台线程。
有办法吗?还是我对这种方法完全错了?
谢谢!
最佳答案
据我了解,在线程中更新 UI 必须与锁定机制一起完成。这是一个例子:
class Calculation implements Runnable {
private long result = 0;
private final Label label;
public Calculation(Label label) {
this.label = label;
}
@Override
public void run() {
// calculate or fetch the result (here is the time consuming operation)
getSession().getLockInstance().lock();
try {
// inform UI about result
label.setValue("Result is: " + result);
} finally {
getSession().getLockInstance().unlock();
}
}
}
关于java - 如何在服务 HTTP 请求并发送回客户端后启动后台线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14622990/
今天小米米家官方微博宣布,小米手表尊享版开启限量定金预售,3 月 3 日早 10 点起支付尾款。购买即赠 399 元小米真无线蓝牙耳机 Air 2。 小米手表尊享版相比普通版核心没有变化,采用
今天下午,小米官方公布了小爱触屏音箱Pro 8,可以看到触控屏幕尺寸比较大,音箱上“长”了一个平板。据悉,小米小爱触屏音箱Pro 8具有白色的配色设计,下方有一个长条状的扬声器,上方带有一个尺寸比较
我是一名优秀的程序员,十分优秀!