Dlaczego ScheduledExecutorService nie tworzy wątków w razie potrzeby?

W mojej aplikacji używam ScheduledExecutorService, ale tylko jeden wątek jest tworzony do obsługi zaplanowanych zadań. Czy to dlatego, że ScheduledExecutorService nie tworzy wątków do obsługi oczekujących zadań?

Oto fragment kodu, który wyświetli tylko „run () 1” zamiast oczekiwanego „run () 1”, po którym następuje „run () 2” ... „run () 10.”

public class App {

    public static void main(String[] args) {
        int N = 10;
        Runnable runner = new Runnable() {

            public void run() {
                foo();
            }
        };
        for (int i = 0; i < N; i++) {
            executor.schedule(runner, i, TimeUnit.MILLISECONDS);
        }
    }

    private static void foo() {
        System.out.println("run() " + (++n));
        synchronized (executor) {
            try {
                executor.wait();
            } catch (InterruptedException ex) {
                Logger.getLogger(App.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        System.out.println("finished()");
    }
    private static Logger logger = Logger.getLogger(App.class.getName());
    private static int n = 0;
    private static ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
}

questionAnswers(2)

yourAnswerToTheQuestion