package net.jrtechs; import java.util.List; import java.util.Vector; import java.util.stream.Collectors; public class RunThreads extends ParallelExecutor { @Override public List runTasks(Vector> tasks) { List results = new Vector<>(); List threads = tasks.stream() .map(task -> new Thread(() -> results.add(task.runTask()))) .collect(Collectors.toList()); threads.forEach(Thread::start); threads.forEach(t-> { try { t.join(); } catch (InterruptedException e) { e.printStackTrace(); } }); return results; } }