问题标签 [future]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
113846 浏览

jquery - 在 jQuery UI Datepicker 中禁用未来日期

是否可以从今天开始禁用未来日期?

假设今天是 2010 年 10 月 23 日,因此 2010 年 10 月 24 日起被禁用。

抱歉,我对 jQuery 和 JavaScript 很陌生。

0 投票
2 回答
2754 浏览

java - Java Future 多线程如何返回结果?

我仍在学习如何在 Java 中使用 Future 和 Callable。偶然发现这个问题:

说我有课:

这是主要方法:

我想要做的是,打破在单独线程中运行的请求的一部分,因为每个请求 Id 都是单独的搜索过程。所以我试图通过将结果存储在未来对象中来利用 Java 池。

我感到困惑的是,在这种情况下,未来将如何运作?对于每个线程完成,它会保存结果吗?在所有过程完成后,我可以循环未来对象以获得正确的结果?

此外,不能保证进程会按顺序运行(1、2、3、4 等),对吧?如果是这种情况,那么如果我想将每个原始请求与未来结果相关联,那么最好的策略是什么?

请指教。

谢谢

0 投票
4 回答
18924 浏览

java - Future.get() 总是被 InterruptedException 中断

我对 Java 中的 Future.get() 有一个奇怪的问题。它总是返回一个InterruptedException,但是奇怪的是异常的原因是null,所以我不知道是谁打断了我..

情况变得更糟,因为我在调用 get() 之前进行了检查,而 Future 必须做的工作已经完成。

这是负责下面输出的代码。f 是 Future,并且可调用返回一个 HashMap ,其中 Agent 并不真正相关。抱歉,如果打印行太多,我只是想提供尽可能多的信息。callable 的 call 方法现在很简单System.out.println("Hola soy agente"),正如您将看到的,它被打印出来,这意味着 callable 也没有导致异常

这是代码:

和输出

如果您想查看我将可调用对象添加到线程池的位置...那么这就是它的代码

然后我用

0 投票
6 回答
14937 浏览

clojure - Clojure 期货和承诺有何不同?

futures 和 promises 都会阻塞,直到它们计算出它们的值,那么它们之间有什么区别呢?

0 投票
1 回答
1339 浏览

scala - 如何获得与 Future Actor 关联的对象?

我希望能够访问从产生未来返回的对象

此代码的一次运行的输出是:

我试过future().getClass(),输出是

我希望能够访问的是 obj1 对象。

谢谢

布鲁斯

0 投票
2 回答
1706 浏览

java - 当 Callable 返回特定结果时停止 Executor

我想阻止 Executor 运行任何更多 Future 对象,即使它们已提交给 Executor。通过 Executor 让多个线程运行都可以正常工作,但是当 Callable 之一返回 Boolean TRUE 时,Executor 应该停止。当前正在运行的 Future 完成很好,但继续其余部分将是浪费时间。

其中 MathCalculation 实现了 Callable 接口,其 call() 方法返回一个布尔值。

在每次迭代时搜索calculationSet 不是一个选项,因为该集合会变得非常大,并且由于多线程情况,它显然无法工作。有没有办法做到这一点?

0 投票
1 回答
1312 浏览

python - 是我自己还是 Windows 上新的 Python 期货模块出现了严重问题

我在 Windows XP 上,我遇到了新的 Python 3.2 期货模块的问题。看来我无法ProcessPoolExecutor上班了。会话示例:

对我来说,这里似乎有问题。

0 投票
3 回答
6790 浏览

java - 如何使用 CompletionService 取消耗时过长的任务

我使用围绕 2 线程 FixedThreadPool ExecutorService 包裹的 CompletionService 提交了一些 Future 任务,我设置然后设置一个等于提交的任务数量的循环,并使用 completionservice.take() 等待它们全部完成或失败。麻烦是偶尔它永远不会完成(但我不知道为什么)所以我将 take() 方法更改为 poll(300,Timeout.SECONDS),想法是如果一项任务需要超过 5 分钟才能完成poll 将失败,然后最终将退出循环,我可以遍历所有期货并调用 future.cancel(true) 以强制取消有问题的任务。

但是当我运行代码并且它挂起时,我看到轮询每 5 分钟连续失败一次并且没有更多任务运行,所以我假设这两个工作人员以某种方式陷入僵局并且永远不会完成,并且永远不允许启动其他任务。因为超时是 5 分钟,并且还有 1000 个任务要运行,所以打破循环所花费的时间太长,所以取消了作业。

所以我想要做的是中断/强制取消当前任务,如果没有在 5 分钟内完成,但我看不到任何方法。

此代码示例显示了我所说的简化版本

输出

0 投票
1 回答
1271 浏览

sql - NHibernate 未来对象图 许多查询

给定一个使用 Future 调用的多级对象图:

当我调用 var Dad = dads.ToList() 时,我看到批次穿过电线并显示在分析器中。

问题是在枚举集合时它仍然向数据库发送一次查询

例如。

发送 SQL 查询并访问数据库以获取每个孩子。为什么没有填充对象图?还是这是预期的行为?

0 投票
1 回答
1002 浏览

nhibernate - NHibernate 父、子集合与期货

我有这个设置:父母,有一个孩子的集合。

总部:

("来自父母").Future();

("来自孩子").Future();

这给出了经典的 N+1 问题。两个SQL语句一次往返发送到服务器,所以所有数据都存在于一级缓存中,为什么NH仍然存在每个孩子的SQL。

版本 3.1.0.400