O valor não é atualizado no loop a menos que seja impresso [duplicado]
Esta questão já tem uma resposta aqui:
Loop não vê valor alterado por outro thread sem um comando print 1 respostaOk, então eu tenho um segmento de monitoramento que verifica um tamanho de ArrayList e faz algo depois que o tamanho for maior que um determinado número. O problema que estou tendo agora é que o valor do tamanho nunca é atualizado, a menos que eu tenha uma instrução print no meu loop. Aqui está algum código para mostrar o que exatamente eu tenho.
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
}
}
Este código acima não funciona. Nunca entra na declaração if. No entanto, isso funciona bem:
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
}
}
EDIT: código getSize ():
public ArrayList<byte[]> myQueue = new ArrayList<byte[]>();
public int getSize() {
return myQueue.size();
}
NOTA: Eu tenho outro thread em execução que está atualizando e adicionando à minha lista na minha classe t.
Qualquer ajuda? isso é realmente irritante para cuspir números quando estou tentando depurar no console.