Der Wert wird in der while-Schleife nur aktualisiert, wenn er ausgedruckt wird. [Duplizieren]
Diese Frage hat hier bereits eine Antwort:
In der Schleife wird kein Wert angezeigt, der von einem anderen Thread ohne eine print-Anweisung geändert wurde 1 AntwortOk, also ich habe einen Überwachungsthread, der eine ArrayList-Größe überprüft und etwas tut, nachdem diese Größe eine bestimmte Zahl überschreitet. Das Problem, das ich gerade habe, ist, dass der Größenwert nie aktualisiert wird, es sei denn, ich habe eine print-Anweisung in meiner Schleife. Hier ist ein Code, der zeigt, was genau ich vorhabe.
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
}
}
Dieser obige Code funktioniert nicht. Es geht nie in die if-Anweisung ein. Dies funktioniert jedoch gut:
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
}
}
BEARBEITEN: getSize () Code:
public ArrayList<byte[]> myQueue = new ArrayList<byte[]>();
public int getSize() {
return myQueue.size();
}
ANMERKUNG: Es wird ein anderer Thread ausgeführt, der aktualisiert und meiner Liste in meiner t-Klasse hinzugefügt wird.
Irgendeine Hilfe? Das ist wirklich ärgerlich, wenn ich Zahlen ausspucke, wenn ich versuche, Fehler in der Konsole zu beheben.