Loading src/main/java/ch15/UnpredictableRunOrder.java +7 −17 Changes for src/main/java/ch15/UnpredictableRunOrder.java: 7 added lines, 17 removed lines. Original line number Diff line number Diff line Loading @@ -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(); } } Loading
src/main/java/ch15/UnpredictableRunOrder.java +7 −17 Changes for src/main/java/ch15/UnpredictableRunOrder.java: 7 added lines, 17 removed lines. Original line number Diff line number Diff line Loading @@ -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(); } }