Почему ScheduledExecutorService не создает потоки по мере необходимости?
В моем приложении я использую ScheduledExecutorService, но только один поток создается для обработки запланированных задач. Это потому, что ScheduledExecutorService не порождает потоки для обработки отложенных задач?
Вот фрагмент кода, который будет выводить только "run () 1" & quot; вместо ожидаемого & quot; run () 1 & quot; с последующим & quot; run () 2 & quot; ... & quot; run () 10. & quot;
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);
}