问题描述
我需要由多个线程执行单个任务,这样,当第一个线程完成并且在任何其他线程完成之前,所有线程都将停止并重新开始同一任务。这应该执行n次。
我的尝试是使用Callable<V>
和方法invokeAny()
(这就是我使用集合的原因),但不确定如何实现目标。
ExecutorService executor = Executors.newFixedThreadPool(10);
Callable<String> task = () -> {
someTask();
return "";
};
Set<Callable<String>> tasks = new HashSet<>();
IntStream.range(0,n).forEach(i -> {
tasks.add(task);
executor.submit(task);
});
如何完成此操作?或任何更好的解决方案?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)