问题标签 [completion-service]
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.
java - 为什么java会创建错误以将对象转换为可调用对象?
我正在尝试运行 CompletionService 来执行线程数。这是我的代码
Java 在 list.add 处显示运行时错误。
错误:-(不能转换为 java.util.concurrent.Callable)。
java - PriorityExecutor 和 ExecutorCompletionService,可以吗?
我已经基于 http://funofprograming.blogspot.co.il/2013/11/priorityexecutorservice-for-java.html实现了一个 PriorityExecutor 并 在 Java 中指定任务顺序执行
但是我想使用ExecutorCompletionService
并把它交给PriorityExecutor
但是我得到以下执行:
似乎完成服务QueueFuture
从我的 Comaprable Future 中创建了自己的 Future (a )。
有人用 ExecutorCompletionService 实现了 PriorityExecutor 吗?如果是这样,我是否需要扩展 ExecutorCompletionService ?
java - CompletitionService:轮询超时而不每次都重置它?
我有一套任务必须在一定时间内完成,否则打断他们。特别是通过FTPClient
类在不同的服务器上上传相同的文件。
我认为这CompletionService
是我的问题的最佳解决方案,但唯一的问题是poll
在可调用任务返回的每个元素处更新使用的超时,对吗?对不起,如果我不是,这是我第一次使用这种机制。
无论如何,这不是我要找的,因为我想为所有提交的任务的完成设置一个上限,而不是下一个任务完成的上限!
这个问题有什么解决方案/解决方法吗?
java - 使用 CompletionService 时强制执行 executorService.awaitTermination
我正在尝试提交多个任务并在可用时获取结果。但是,在循环结束后,我必须强制所有任务在指定的时间内完成。如果不是,则抛出错误。最初,我所拥有的只是 executorService 的 invokeAll、shutdown 和awaitTermination调用,它们用于确保所有任务完成(无论是否出错)。我迁移了代码以使用CompletionService来显示结果。我在哪里可以在 CompletionService 调用中强制执行 awaitTermination 子句?
换句话说,我如何利用 CompletionService 的超时?
编辑:
我的初始代码如下所示。问题是我正在遍历未来列表,然后将它们打印为已完成。但是,我的要求是显示在 FCFS 基础上完成的那些。
java - 通过 CompletionService 检查取消的任务
我正在研究 CompletionService 类,我发现将提交队列与完成队列分离非常有用。
但我也错过了一种轮询/取消任务的方法(这可以被认为以某种方式完成)。它可以以某种方式轻松完成吗?
编辑:在检查了一些答案后,我意识到发生了什么。CompletitionService 以与提交的作业相同的顺序返回。如果您运行作业 a、b 和 c;在 a 工作时取消 b 和 c;最后轮询completionService,直到a taks 终止才会通知b 和c 的取消。另外,我意识到,如果您关闭执行程序而不是取消单个任务,那么仍在队列中的那些任务不会到达完成服务,即使它们的取消在活动任务尚未结束时完成。
EDIT2:好的,我添加了一个完整的测试用例
我期望输出如下:
但取而代之的是:
我什至尝试使用 PriorityBlockingQueue 作为 CompletionService 的队列,Comparator.<Future<String>,Boolean>comparing(Future::isCancelled).reversed()
但它也没有工作(我猜如果元素改变状态它不会求助)
java - Java在方法内添加关闭钩子
在我的代码中,我使用 CompletionService 和 ExecutorService 来启动一堆线程来执行某些任务(这可能需要很多时间)。所以我有一个方法可以创建 ExecutorService 和 CompletionService,然后开始提交线程,然后获取结果。我想添加一个关闭挂钩以优雅地关闭执行程序(我知道我可能应该处理释放资源而不是执行程序关闭,但在我的情况下,每个线程都有自己的资源,所以优雅地关闭它们可能是一个很好的解决方案我认为)。
出于这个原因,我编写了以下代码
您认为这是一个合理的解决方案,还是使用本地类注册和注销关闭挂钩是不安全的?
提前致谢
问候
java - ProgressBar 和 ExecutorService
我有一个按钮,单击该按钮时需要生成一个带有 ProgressBar 的对话框来跟踪 CompletionService 的任务完成情况。在将其标记为重复之前,我不认为这是一个 EDT 问题,因为 ProgressBarRunnable 是单独的线程。
以下是按钮单击和相关工作人员的代码:
java - 如何在 ExecutorCompletionService 上使用模拟
我正在使用 ExecutorCompletionService 和下面的方法调用
现在正在编写 Junit 和 Mockito,我想模拟以上两个调用。我怎样才能做到这一点?
java - CompletionService 中的重试策略
我需要为通过 ExecutorCompletionService 调用 API 配置重试策略。
示例代码:
为调用 API 时抛出的 TimeoutException 实施重试策略的最佳方法是什么?
multithreading - 实现自定义执行器
在下面的示例中,如果我在ExecutorImpl
不使用的情况下实现Thread
,则taskCompletionService.submit
即使它返回,也会被阻止Future
。是否可以不阻止submit
但不使用Thread
in ExecutorImpl
?