Значение не обновляется в цикле while, если не распечатано [duplicate]

На этот вопрос уже есть ответ здесь:

Цикл не видит значение, измененное другим потоком без оператора печати 1 ответ

Итак, у меня есть поток мониторинга, который проверяет размер ArrayList и делает что-то после того, как этот размер превысит определенное число. У меня сейчас проблема в том, что значение размера никогда не обновляется, если в моем цикле нет оператора print. Вот некоторый код, чтобы показать, что именно у меня происходит.

while(working) {
    // Get size function just returns the size of my list in my t class
    int size = t.getSize();
    if (size >= 10) {
        //DO STUFF
    }
}

Этот код выше не работает. Это никогда не входит в утверждение if. Тем не менее, это прекрасно работает:

while(working) {
    // Get size function just returns the size of my list in my t class
    int size = t.getSize();
    System.out.println(size);
    if (size >= 10) {
        //DO STUFF
    }
}

РЕДАКТИРОВАТЬ: getSize () код:

public ArrayList<byte[]> myQueue = new ArrayList<byte[]>();

public int getSize() {
    return myQueue.size();      
}

ПРИМЕЧАНИЕ: у меня запущен другой поток, который обновляет и добавляет в мой список в моем классе t.

Любая помощь? это действительно раздражает, когда я пытаюсь выполнить отладку в консоли.

Ответы на вопрос(4)

Ваш ответ на вопрос