Commit 4876fa10 authored by Trisha Gee's avatar Trisha Gee
Browse files

[Ch15] Simplified the test harness for unpredictable run order

parent 97a3ca10
Loading
Loading
Loading
Loading
+7 −17
Changes for src/main/java/ch15/UnpredictableRunOrder.java: 7 added lines, 17 removed lines.
Original line number Diff line number Diff line
@@ -4,37 +4,27 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class UnpredictableRunOrder {

}

class RunWithThread {
  public static void main(String[] args) {
    for (int i = 0; i < 20; i++) {
      runThread();
    for (int i = 0; i < 100; i++) {
      ExecutorTestDrive.main(args);
    }
  }
}

  private static void runThread() {
class ThreadTestDrive {
  public static void main (String[] args) {
    Thread myThread = new Thread(() -> System.out.println("top o’ the stack"));
    myThread.start();
    System.out.println("back in main");
  }
}

class RunWithExecutor {
class ExecutorTestDrive {
  public static void main (String[] args) {
    ExecutorService executor = Executors.newSingleThreadExecutor();
    for (int i = 0; i < 100; i++) {
      executeRunnable(executor);
    }

    executor.shutdown();
  }

  private static void executeRunnable(ExecutorService executor) {
    executor.execute(() -> System.out.println("top o’ the stack"));

    System.out.println("back in main");
    executor.shutdown();
  }
}