ExecutorService通过多个线程执行单个任务n次n个线程“竞赛”

问题描述

我需要由多个线程执行单个任务,这样,当第一个线程完成并且在任何其他线程完成之前,所有线程都将停止并重新开始同一任务。这应该执行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 (将#修改为@)