### Question:
TaskRunner2 { public static void run(Runnable[] tasks, int processors) throws InterruptedException { List<Task2> taskList = new ArrayList<Task2>(); for (int i = 0; i < tasks.length; i++) taskList.add(new SimpleTask2(tasks[i])); run(taskList, processors); }  static void run(Runnable[] tasks, int processors); static void run(Task2[] tasks, int processors);  }### Answer:
@Test public void testTaskRunnerEx() throws InterruptedException { List<Task2> taskList = new ArrayList<Task2>(); taskList.add(new TestTask(1)); taskList.add(new TestTask(10)); taskList.add(new TestTask(3)); taskList.add(new TestTask(5)); taskList.add(new TestTask(1)); taskList.add(new TestTask(5)); taskList.add(new TestTask(1)); taskList.add(new TestTask(1)); taskList.add(new TestTask(1)); taskList.add(new TestTask(10)); taskList.add(new TestTask(1)); taskList.add(new TestTask(1)); taskList.add(new TestTask(1)); taskList.add(new TestTask(1)); taskList.add(new TestTask(1)); TaskRunner2.run(taskList.toArray(new Task2[] {}), 4); }