Я пытаюсь настроить поток, который выполняет следующее:
Пул потоков только с 1 потоком [CorePoolSize =0, maxPoolSize = 1]
Используется очередь ArrayBlockingQueue
Quesize = 20
BackGround:
Поток пытается прочитать запрос и выполнить над ним операцию.
ОДНАКО, со временем количество запросов увеличилось настолько, что поток всегда занят и потребляет 1 ЦП, что делает его ресурсом.
Что я хочу сделать, вместо этого делать выборки с интервалами и обрабатывать их. Другие запросы могут быть безопасно проигнорированы.
То, что мне нужно было бы сделать, это перевести режим сна в режим «операция», чтобы для каждой задачи поток некоторое время спал и высвобождал процессор.
Quesiton:
Однако мне было интересно, есть ли способ использовать очередь, которая в основном сама спит какое-то время, прежде чем читает следующий элемент. Это было бы идеально, так как выполнение задачи в середине выполнения и сохранение ее незавершенным просто не звучит лучше для меня.
Пожалуйста, дайте мне знать, если у вас есть какие-либо другие предложения для задач
Спасибо.
Edit:
Я добавил дополнительный вопрос здесь
исправил размер maxpool до 1 [записано в спешке]. Спасибо, Тим, за то, что указал на него.