Создайте 3 группы потоков с 25 потоками.
В плане тестирования установите флажок «Запустить группы потоков последовательно». Таким образом, вы уверены, что следующий будет выполняться после завершения первого.
Ну, в начале trimToSize
Javadoc говорится
Попытки уменьшить объем памяти, используемый для последовательности символов. Если размер буфера больше необходимого для хранения текущей последовательности символов, его размер можно изменить , чтобы он стал более компактным
blockquote>. уменьшается, и может оказаться невозможным уменьшить объем хранилища (и даже если есть возможность уменьшить объем хранилища, реализация может решить, что было бы более выгодно не уменьшать объем хранилища). Если объем хранилища уменьшается, результат, возвращаемый при последующем обращении к
capacity()
, изменится.Тем не менее, реализация, которую я вижу в
AbstractStringBuilder
, всегда уменьшает объем памяти, когда это возможно (то есть, когда заняты не все символы резервного массива):public void trimToSize() { if (count < value.length) { value = Arrays.copyOf(value, count); } }