У меня есть очень старый (середина 2000-х) код, который создает экземпляры объектов на основе входящих данных из сетевого ввода-вывода, и каждый из этих объектов содержит частный (нестатический) таймер и запускает запланированную функцию TimerTask, соответствующую сериализованному объекту, которыйпроисходит от указанной сети IO.Задача, которую они выполняют, - это некоторая очистка объекта при его создании из IO.
В то время это казалось хорошей идеей ....
Я сталкивался снекоторые проблемы с доступностью в последнее время и отследили хотя бы часть неисправности этого кода.Оказывается, когда создаются десятки тысяч этих объектов, мои TimerTasks запускают меня из памяти.
Есть ли хорошее решение 2018 года (в настоящее время Java 8, вскоре переходящая в 11), возможно, какой-то пул потоков?Отдельные задачи предназначены для очистки отдельного объекта, поэтому я не против, если они запускаются одновременно, но также не должен убивать мою JVM в процессе.И это нормально, если какая-то их часть задерживается, если их много.
Есть предложения?