Senhores, bom dia.
Vou explicar minha necessidade.
Tenho uma classe que implementa a interface Runnable que fica consumindo em um loop infinito (while(true)) um serviço.
Quando essa classe recebe uma mensagem, ela alimenta uma determinada lista (a mensagem contém “tipo de mensagem”, e de acordo com esse tipo, ela alimenta uma lista específica.
Então, imaginem assim: listA, listB e listC. Eu tenho outras três classes: classA, classB e classC.
O que eu fiz agora é bem feio (eu sei), fiz uma classe interna para cada classA, classB e classC, cada uma consumindo sua respectiva lista (listA, listB e listC). Qual o problema ? Fica em loop infinito. Imagina o quanto de processador está sendo consumido.
Como não tenho grande experiência com Threads (pois trabalho muito com JEE), qual a sugestão dos senhores para resolver isso com a ideia de uma “flag” ? O eu queria fazer era algo assim: classA aciona o método de uma determinada classe (que popula as três listas que citei acima) e fica esperando por uma resposta, como se tivesse pausado a Thread. Somente quando listA for populada, ela vai devolver uma resposta para classA (isso vale para as outras classes).
Nesse formato, elimino essa implementação ruim e diminuo o consumo do processador.
Peço desculpas pelo texto longo e espero ter sido claro.
Infelizmente, não tenho tempo hábil para alterar tudo, a necessidade é essa e foi feito assim porque estou trabalhando em software de outra pessoa.
Obrigado pessoal. Abraços.