Стратегия Java ThreadPoolExecutor, «Прямая передача обслуживания» с очередью?

Я ищу есть ThreadPoolExecutor, где я могу установить corePoolSize и maximumPoolSize, и что происходит, так это то, что очередь немедленно передает задачу в пул потоков и, таким образом, создает новые потоки пока он не достигнет maximumPoolSize, затем начните добавлять в очередь.

Есть ли такая вещь? Если нет, то есть ли веская причина, по которой у него нет такой стратегии?

По сути, я хочу, чтобы задачи были отправлены на выполнение, и когда они достигают точки, в которой они по существу получат «худшую» производительность из-за слишком большого количества потоков (путем установки maxPoolSize), он перестанет добавлять новые потоки и работать с этим пулом потоков и начинать очередь, а затем, если очередь заполнена, она отклоняется.

А когда нагрузка снова падает, он может начать демонтировать неиспользуемые потоки обратно в corePoolSize.

Это имеет для меня больше смысла в моем приложении, чем «три общие стратегии», перечисленные в http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor. html

6
задан 8 March 2012 в 18:18
поделиться