Follow Java’s one-at-a-time path
Start with one running Java program and ignore thread pools for a moment. Java follows one active path: it runs the current statement, finishes it, then moves to the next statement.