Мне нужна реализация ExecutorService, которая может ограничить количество Runnables, которые могут быть поставлены в очередь. Я также хотел бы иметь возможность контролировать, что происходит при отправке новых исполняемых объектов, когда очередь уже заполнена. В идеале я хотел бы иметь возможность выбрать стратегию, но достаточно было бы просто удалить исполняемый объект в начале очереди и поместить новый в конец очереди. Я уверен, что что-то подобное уже реализовано, и я оглянулся, но не смог найти ничего.