用于存储java.util.concurrent.Future实例的容器

时间:2014-02-19 09:47:26

标签: java

我代表特定的作业Callable提交ExecutorService(我们可以将作业视为执行者的一部分内容服务)。

当然,在提交Callable后,我会找回Future

我需要能够中断代表某个特定工作提交的Future。为了实现这一点,我很想在我的java.utils.TreeSet课程中使用Job。但是,我关注每个Future的独特性:它们会占据TreeSet中的独特位置吗?如果没有,那么有更好的容器可供使用吗?

一个解决方案,如果容器不符合它,将扩展ExecutorService并在每次提交时递增一个计数器,然后使用该计数器作为某种散列来保证唯一性。但这是我急于避免的开销,特别是如果我的担忧没有根据的话。

3 个答案:

答案 0 :(得分:2)

TreeSet是一个有序集,您不需要对未来进行排序。

您也不需要处理重复项,因此不需要Set。

只需使用ArrayList即可。

答案 1 :(得分:0)

由于将来没有自己的equals实施,因此它将从this==obj的{​​{1}}开始。由于Object通常会返回不同的对象,因此您应该没问题。

但是,我认为任何容器(列表,集合,数组......)应该这样做以确定我建议使用ExecutorService

答案 2 :(得分:0)

如果我需要查找未来,我会将其存储在地图中。以id为关键,未来为价值。