2016-04-15 2 views
2

Я хотел бы знать разницу между corePoolSize и дроссельных предельным как Spring Batch атрибутов, определяющих конфигурацией несколько потоковой.Весна партии corePoolSize VS дроссельная предел

У меня есть разница между corePoolSize и MaxPoolSize благодаря этому сообщению "What is the difference between corePoolSize and maxPoolSize in the Spring ThreadPoolTaskExecutor"

Но мой вопрос касается corePoolSize против дросселя предельного ... Я обнаружил, что это предпочтительнее, чтобы определить CorePoolSize = Throttle- лимит, но мне интересно ... если я определяю, например: CorePoolSize = 100 и Throttle-limit = 200 ... Что происходит? Будет ли пул потоков размером 200, который будет создан или 100?

Спасибо за любые разъяснения ...

+0

У тела нет ответа? – Siho

ответ

5

Размера основного бассейна говорит бассейн исполнитель поток будет начинаться с N количества потоков. Ограничение дроссельной заслонки T говорит, что независимо от количества потоков, доступных в пуле потоков, используйте только T этих потоков для таска.

Таким образом, у вас может быть пул потоков с размером основного пула 8 и двумя тасками с ограничением дросселя 4, в этом случае вы будете использовать пул потоков. Но если у вас есть только один тасклет с пределом дросселя 4, вы будете использовать одну половину пула потоков.

+1

Благодарим вас за это разъяснение Джон, но что, если предел дросселя превышает corePoolSize? например, Throttle-limit = 200 и CorePoolSize = 100? будет ли авария JVM? – Siho

+1

Я не знаю реализации, но я думаю, что семафор для дроссельной заслонки и избыточные представления в пуле потоков просто заставят эти представления быть поставленными в очередь и выполняться в какой-то момент в будущем. –

Смежные вопросы