Java: неожиданный параллелизм в однопоточном ThreadPoolExecutor

У меня есть ряд MyRunnable объекты запланированы на ExecutorService создано Executors.newFixedThreadPool(1), каждый stepX метод регистрирует, когда он начинает выполняться, и в соответствии с моим журналом у меня есть MyRunnable объекты с перекрывающимися средами выполнения. У меня также есть ошибки времени выполнения, которые соответствуют двум MyRunnable объекты выполняются одновременно, так что, скорее всего, это не просто часы, которые не работают.

class MyRunnable implements Runnable {
    @Override
    public void run() {
        step1();
        step2();
        step3();
        step4();
        step5();
    }
}

У меня нет звонков ThreadPoolExecutor#setMaximumPoolSize в моем коде.

Насколько я могу сказать, либо мой Runnables вытесняются, или мой ThreadPoolExecutor растет за его maximumPoolSize, Я ожидал, что обе эти вещи будут невозможны.

0 ответов

Другие вопросы по тегам