jjzjj

completionService

全部标签

java - 如何在 Java 中对返回 boolean 值的两个并行线程执行短路评估?

我正在寻找逻辑上等同于以下问题的指导:publicbooleanparallelOR(){ExecutorServiceexecutor=Executors.newFixedThreadPool(2);FuturetaskA=executor.submit(newSlowTaskA());FuturetaskB=executor.submit(newSlowTaskB());returntaskA.get()||taskB.get();//ThisisnotwhatIwant//Exceptionhandlingomittedforclarity}上面的构造给出了正确的结果但是总是等待

java - 在 ExecutorService 中跟踪已完成的任务

我正在用Java编写一个应用程序,它使用ExecutorService来运行多个线程。我希望将多个任务(一次数千个)作为Callables提交给Executor,并在完成后检索它们的结果。我处理这个问题的方法是每次调用submit()函数时,我都会得到一个存储在ArrayList中的Future。后来我将List传递给一个线程,该线程不断迭代它,调用future.get()函数并超时以查看任务是否完成。这是正确的方法还是效率太低?编辑---更多信息---另一个问题是每个Callable需要不同的处理时间。因此,如果我简单地从List中取出第一个元素并对其调用get(),它将阻塞,而其他

java - 线程结束监听器。 java

Java中是否有监听器来处理某个线程已结束?像这样:Futuretest=workerPool.submit(newTestCalalble());test.addActionListener(newActionListener(){publicvoidactionEnd(ActionEvente){txt1.setText("Button1clicked");}});我知道,这样处理是不可能的,但我想在某个线程结束时得到通知。通常我将这个Timer类用于检查每个Future的状态。但这不是很好的方法。谢谢 最佳答案 有Comple

java - 什么时候应该使用 CompletionService 而不是 ExecutorService?

我刚刚在thisblogpost中找到了CompletionService.但是,这并没有真正展示CompletionService相对于标准ExecutorService的优势。可以用其中任何一个编写相同的代码。那么,CompletionService什么时候有用?您能否提供一个简短的代码示例以使其一目了然?例如,此代码示例仅显示不需要CompletionService的位置(=相当于ExecutorService)ExecutorServicetaskExecutor=Executors.newCachedThreadPool();//CompletionServicetaskCo

java - 什么时候应该使用 CompletionService 而不是 ExecutorService?

我刚刚在thisblogpost中找到了CompletionService.但是,这并没有真正展示CompletionService相对于标准ExecutorService的优势。可以用其中任何一个编写相同的代码。那么,CompletionService什么时候有用?您能否提供一个简短的代码示例以使其一目了然?例如,此代码示例仅显示不需要CompletionService的位置(=相当于ExecutorService)ExecutorServicetaskExecutor=Executors.newCachedThreadPool();//CompletionServicetaskCo