gpt4 book ai didi

java - PriorityExecutor 和 ExecutorCompletionService 可以吗?

转载 作者:行者123 更新时间:2023-11-30 03:36:00 26 4
gpt4 key购买 nike

我已经实现了一个基于的 PriorityExecutor http://funofprograming.blogspot.co.il/2013/11/priorityexecutorservice-for-java.htmlSpecify task order execution in Java

但是我想使用 ExecutorCompletionService 并将其交给 PriorityExecutor

但是我得到以下执行:

Caused by: java.lang.ClassCastException: java.util.concurrent.ExecutorCompletionService$QueueingFuture cannot be cast to java.lang.Comparable
at java.util.concurrent.PriorityBlockingQueue.siftUpComparable(PriorityBlockingQueue.java:347)
at java.util.concurrent.PriorityBlockingQueue.offer(PriorityBlockingQueue.java:479)
at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1364)
at java.util.concurrent.ExecutorCompletionService.submit(ExecutorCompletionService.java:188)
at com.ibm.modmt.impl.sommosAlg.meta.PoolStrategy.multiSubmit(PoolStrategy.java:160)
at com.ibm.modmt.impl.sommosAlg.meta.MultiSOMMOSTask.multiSubmit(MultiSOMMOSTask.java:157)
at com.ibm.modmt.impl.sommosAlg.meta.MultiSOMMOSTask.call(MultiSOMMOSTask.java:85)
at com.ibm.modmt.impl.sommosAlg.meta.MultiSOMMOSTask.call(MultiSOMMOSTask.java:1)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
... 1 more

完成服务似乎从我的 Comaprable Future 创建了自己的 Future(QueueFuture)。

有人用 ExecutorCompletionService 实现了 PriorityExecutor 吗?我是否需要扩展 ExecutorCompletionService 如果需要的话如何?

最佳答案

我没有看到任何方法可以使用内置实现来做到这一点。然而,ExecutorCompletionService 是相当简单的代码,并且是 GPL,因此您可以复制它供您自己使用并修改它以处理您的自定义 Future。

关于java - PriorityExecutor 和 ExecutorCompletionService 可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27862182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com