Code for a blogpost
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
710 B

  1. package net.jrtechs;
  2. import java.util.List;
  3. import java.util.Vector;
  4. import java.util.stream.Collectors;
  5. public class RunThreads<E> extends ParallelExecutor<E>
  6. {
  7. @Override
  8. public List<E> runTasks(Vector<Work<E>> tasks)
  9. {
  10. List<E> results = new Vector<>();
  11. List<Thread> threads = tasks.stream()
  12. .map(task ->
  13. new Thread(() -> results.add(task.runTask())))
  14. .collect(Collectors.toList());
  15. threads.forEach(Thread::start);
  16. threads.forEach(t-> {
  17. try {
  18. t.join();
  19. } catch (InterruptedException e) {
  20. e.printStackTrace();
  21. }
  22. });
  23. return results;
  24. }
  25. }