Java ThreadPoolExecutor — фиксированныйThreadPool ActiveCount = 0, QueueSize = 1, PoolSize = 10JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java ThreadPoolExecutor — фиксированныйThreadPool ActiveCount = 0, QueueSize = 1, PoolSize = 10

Сообщение Anonymous »

Я создаю пул потоков Java с помощью FixThreadPool с размером пула 10.
Из конструктора

Код: Выделить всё

    public static ExecutorService newFixedThreadPool(int nThreads) {
return new ThreadPoolExecutor(nThreads, nThreads,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue());
}
Это означает, что я создал пул потоков с размером основного пула потоков 10 и максимальным размером пула потоков 10. Согласно официальному документу Java 8, это означает, что:
  • Максимум будет 10 потоков, независимо от количества поступающих запросов
  • Очередь будет расти бесконечно
Однако при проверке счетчиков меня смутил следующий счетчик: Приведенный выше счетчик появляется несколько раз, поэтому это не единичная ситуация. Я также вижу такие счетчики: В этом случае запрос все еще находится в очереди, пока размер пула меньше, чем потоки, активно обрабатывающие задачи. Кто-нибудь знает, почему это происходит? Я что-то упустил?

Подробнее здесь: https://stackoverflow.com/questions/783 ... e-1-poolsi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»