- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
代码如下所示:
final ListeningExecutorService executor = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(4));
final Callable<String> asyncTask = new Callable<String>() {
@Override
public String call() throws Exception {
return TestFuture.computeResult();
}
};
final int listSize = 10;
final List<ListenableFuture<String>> listenableFutures = Lists.newArrayListWithExpectedSize(listSize);
for (int i = 0; i < listSize; i++) {
listenableFutures.add(executor.submit(asyncTask));
}
for (final ListenableFuture<String> listenableFuture2 : listenableFutures) {
Futures.addCallback(listenableFuture2, new FutureCallback<String>() {
@Override
public void onSuccess(final String result) {
System.out.println("callback success with " + result + " at " + Thread.currentThread().getName());
}
@Override
public void onFailure(final Throwable thrown) {
System.out.println("callback failed with " + thrown.getMessage());
}
});
}
我无法弄清楚如何安排回调在将执行asyncTask
的线程上执行?
我可以看到 Futures.addCallback
调用 addCallback(future, callback, MoreExecutors.sameThreadExecutor());
,但我不知道 MoreExecutors.sameThreadExecutor 如何保证这一点?
最佳答案
sameThreadExecutor()
仅执行内联传递给其 execute(Runnable)
方法的任何 Runnable
:也就是说,它仅调用 run()
就可以了。它根本不做任何与线程相关的事情。并且回调 Runnable
会被传递到执行 asyncTask
的同一线程上与其关联的 Executor
,因为 ListeningExecutorService
有效地将您的 asyncTask
包装在 FutureTask
中当其 done()
方法被调用时调用所有回调。
注意:实际上并不能保证所有回调都将在执行 asyncTask
的线程上执行。例如,如果您在 asyncTask
完成后添加回调,它将在您添加回调的线程上执行(假设您不提供回调)除了要使用的回调的 sameThreadExecutor()
之外的 Executor
)。
关于java - Futures.addCallback 如何保证回调在执行 future 任务的线程中执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32863800/
我正在开发相机应用程序,但遇到了问题。更多细节如下。我还需要帮助将图片保存在另一个线程中。 1。错误 我得到的错误是: error: method addCallback in interface S
我有一个从 JavaScript 发送和接收大量消息的 Flash 游戏。 有时我需要停止监听其中一些函数,但 ExternalInterface 没有 removeCallback 函数。所以我在做
我有js代码: function onFlashReady() { sendToAS("sit"); } function callJS(value) {
这是我的 AC3 代码 private function uploadet( dosya:String ):void { var uploader:URLRequest = new U
我正在尝试让 JS 在 Wordpress 网页和 Actionscript 2 Flash 电影中相互交谈。这一尝试惨遭失败。每次尝试调用我设置回调的函数时,我都会在浏览器错误控制台中收到“....
我想从 JS 调用 AS 函数。 我有以下 ActionScript 3 代码: package { import flash.display.*; import flash.eve
我正在尝试使用 javascript 来运行 AS3 函数。当我尝试编译时,收到“访问未定义的属性”错误消息。 我已经在网上阅读了一些有关此的内容,但我仍然不明白。我想让 flash 文件始终监听 j
我正在尝试将 2 个变量从 javascript 传递到 flash。我想我可以做这样的事情 i as3 来尝试接收它们。 ExternalInterface.addCallback("callAs"
我有 AddCallback()带有第二个参数 int .但是如何减少 传输错误的可能性type从客户端代码?对于这种情况,什么是好的风格?注意: 如果不等于 mouseDown,则类型不正确mous
我试图从 javascript 访问 swf,所以 livedocs 中的这个示例是我要修改的。 http://livedocs.adobe.com/flash/9.0/ActionScriptLan
这个太破了,还望大家手下留情: reactor.callLater(0, myFunction, parameter1).addCallback(reactor.stop) reactor.run()
我已接受 IdentyfyTask 测试。 但是在值addCallback之前我无法得到响应。 我想要 pnu 值。 但 pnu vaule 始终未定义... 我的代码如下。 function poi
代码如下所示: final ListeningExecutorService executor = MoreExecutors.listeningDecorator(Executors.newFixe
对 ExternalInterface.addcallback 的问题感到困惑。 主要是因为我总是让它在本地工作,当我在浏览器中测试时,但是当我部署到服务器时它停止工作。 我已经添加了跟踪命令并在添加
我想知道使用 ListenableFuture+addCallback() 而不是 invokeAll() 有什么好处,以防我只对获取所有结果感兴趣一次完成任务。 invokeAll() 是否隐藏了任
我是 Java 并发库的初学者,正在学习在我的代码中使用 ListenableFuture。我经历了这个 document并且仍然对哪一种是将可运行代码注册到我的 ListenableFuture 对
我正在开发一个 Flash 游戏,它需要在页面上调用一些 Javascript 并从中获取数据。从 Flash 调用 Javascript 是可行的。从 Javascript 调用 Flash 函数(
在我的 Flex 应用程序中,我需要一个 Javascript 控件来调用我的 Actionscript 方法之一。很简单,根据 Flex/Actionscript 文档,我在我的 Actionscr
是否有理由使用一个而不是另一个? 它们的性能是否相同? 最佳答案 例如,我倾向于使用 inlineCallbacks 对某些服务进行多步初始化(例如 auth),其中每个后续步骤都取决于上一步的结果。
我正在使用 Dagger 2 在我的应用中根据需要创建和共享我的 RoomDatabase。 我正在尝试实现 addCallback() 以便我可以覆盖数据库的 onCreate() 函数并使用它来插
我是一名优秀的程序员,十分优秀!