Commit 97a3ca10 authored by Trisha Gee's avatar Trisha Gee
Browse files

[Ch15] Creating a simpler set of examples to show the unpreditable run order.

parent 7c831598
Loading
Loading
Loading
Loading
+0 −1
Changes for src/main/java/ch15/MyRunnable.java: 0 added lines, 1 removed line.
Original line number Diff line number Diff line
package ch15;

import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

+40 −0
Changes for src/main/java/ch15/UnpredictableRunOrder.java: 40 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch15;

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();
    }
  }

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

class RunWithExecutor {
  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");
  }
}