Wartość nie aktualizuje się w pętli while, chyba że zostanie wydrukowana [duplikat]

To pytanie ma już tutaj odpowiedź:

Pętla nie widzi wartości zmienionej przez inny wątek bez instrukcji drukowania 1 odpowiedź

Ok, więc mam wątek monitorowania, który sprawdza rozmiar ArrayList i robi coś po tym rozmiarze, który jest większy niż pewna liczba. Problem, który mam teraz, to wartość rozmiaru, która nigdy nie jest aktualizowana, chyba że w mojej pętli mam instrukcję print. Oto kod, który pokaże, co dokładnie robię.

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
    }
}

Ten kod nie działa. Nigdy nie wchodzi w instrukcję if. Jednak działa to dobrze:

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
    }
}

EDYCJA: kod getSize ():

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

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

UWAGA: Mam inny wątek, który aktualizuje i dodaje do mojej listy w mojej klasie t.

Jakaś pomoc? jest to naprawdę denerwujące, gdy wypluwa numery, gdy próbuję debugować w konsoli.

questionAnswers(4)

yourAnswerToTheQuestion